kevin-toolbox-dev 1.2.7__tar.gz → 1.3.0__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- kevin-toolbox-dev-1.3.0/PKG-INFO +68 -0
- kevin-toolbox-dev-1.3.0/README.md +50 -0
- {kevin-toolbox-dev-1.2.7 → kevin-toolbox-dev-1.3.0}/kevin_toolbox/__init__.py +2 -2
- {kevin-toolbox-dev-1.2.7 → kevin-toolbox-dev-1.3.0}/kevin_toolbox/computer_science/algorithm/registration/registry.py +35 -11
- {kevin-toolbox-dev-1.2.7 → kevin-toolbox-dev-1.3.0}/kevin_toolbox/computer_science/algorithm/statistician/__init__.py +1 -0
- kevin-toolbox-dev-1.3.0/kevin_toolbox/computer_science/algorithm/statistician/accumulator_base.py +146 -0
- {kevin-toolbox-dev-1.2.7 → kevin-toolbox-dev-1.3.0}/kevin_toolbox/computer_science/algorithm/statistician/average_accumulator.py +9 -36
- {kevin-toolbox-dev-1.2.7 → kevin-toolbox-dev-1.3.0}/kevin_toolbox/computer_science/algorithm/statistician/exponential_moving_average.py +10 -18
- kevin-toolbox-dev-1.3.0/kevin_toolbox/computer_science/algorithm/statistician/init_var/__init__.py +2 -0
- kevin-toolbox-dev-1.3.0/kevin_toolbox/computer_science/algorithm/statistician/init_var/init_by_data_format.py +24 -0
- kevin-toolbox-dev-1.3.0/kevin_toolbox/computer_science/algorithm/statistician/init_var/init_by_like.py +20 -0
- {kevin-toolbox-dev-1.2.7 → kevin-toolbox-dev-1.3.0}/kevin_toolbox/data_flow/file/json_/read_json.py +1 -1
- kevin-toolbox-dev-1.3.0/kevin_toolbox/data_flow/file/markdown/generate_table.py +130 -0
- {kevin-toolbox-dev-1.2.7 → kevin-toolbox-dev-1.3.0}/kevin_toolbox/nested_dict_list/copy_.py +7 -7
- {kevin-toolbox-dev-1.2.7 → kevin-toolbox-dev-1.3.0}/kevin_toolbox/nested_dict_list/serializer/__init__.py +1 -0
- kevin-toolbox-dev-1.2.7/kevin_toolbox/nested_dict_list/serializer/variable.py → kevin-toolbox-dev-1.3.0/kevin_toolbox/nested_dict_list/serializer/enum_variable.py +0 -8
- {kevin-toolbox-dev-1.2.7 → kevin-toolbox-dev-1.3.0}/kevin_toolbox/nested_dict_list/serializer/read.py +2 -1
- kevin-toolbox-dev-1.3.0/kevin_toolbox/nested_dict_list/serializer/variable.py +8 -0
- {kevin-toolbox-dev-1.2.7 → kevin-toolbox-dev-1.3.0}/kevin_toolbox/nested_dict_list/serializer/write.py +2 -1
- {kevin-toolbox-dev-1.2.7 → kevin-toolbox-dev-1.3.0}/kevin_toolbox/nested_dict_list/set_value.py +8 -2
- kevin-toolbox-dev-1.3.0/kevin_toolbox/patches/for_numpy/__init__.py +1 -0
- kevin-toolbox-dev-1.3.0/kevin_toolbox/patches/for_numpy/linalg/softmax.py +47 -0
- {kevin-toolbox-dev-1.2.7 → kevin-toolbox-dev-1.3.0}/kevin_toolbox/patches/for_optuna/sample_from_feasible_domain.py +39 -13
- {kevin-toolbox-dev-1.2.7 → kevin-toolbox-dev-1.3.0}/kevin_toolbox/patches/for_os/__init__.py +1 -0
- {kevin-toolbox-dev-1.2.7 → kevin-toolbox-dev-1.3.0}/kevin_toolbox/patches/for_os/remove.py +4 -2
- kevin-toolbox-dev-1.3.0/kevin_toolbox/patches/for_os/walk.py +167 -0
- kevin-toolbox-dev-1.3.0/kevin_toolbox_dev.egg-info/PKG-INFO +68 -0
- {kevin-toolbox-dev-1.2.7 → kevin-toolbox-dev-1.3.0}/kevin_toolbox_dev.egg-info/SOURCES.txt +6 -1
- kevin-toolbox-dev-1.2.7/PKG-INFO +0 -64
- kevin-toolbox-dev-1.2.7/README.md +0 -46
- kevin-toolbox-dev-1.2.7/kevin_toolbox/computer_science/algorithm/statistician/_init_var.py +0 -27
- kevin-toolbox-dev-1.2.7/kevin_toolbox/data_flow/file/markdown/generate_table.py +0 -26
- kevin-toolbox-dev-1.2.7/kevin_toolbox/patches/for_numpy/linalg/softmax.py +0 -11
- kevin-toolbox-dev-1.2.7/kevin_toolbox/patches/for_torch/__init__.py +0 -0
- kevin-toolbox-dev-1.2.7/kevin_toolbox_dev.egg-info/PKG-INFO +0 -64
- {kevin-toolbox-dev-1.2.7 → kevin-toolbox-dev-1.3.0}/kevin_toolbox/computer_science/__init__.py +0 -0
- {kevin-toolbox-dev-1.2.7 → kevin-toolbox-dev-1.3.0}/kevin_toolbox/computer_science/algorithm/__init__.py +0 -0
- {kevin-toolbox-dev-1.2.7 → kevin-toolbox-dev-1.3.0}/kevin_toolbox/computer_science/algorithm/combinatorial_optimization/__init__.py +0 -0
- {kevin-toolbox-dev-1.2.7 → kevin-toolbox-dev-1.3.0}/kevin_toolbox/computer_science/algorithm/combinatorial_optimization/get_subset_with_largest_product.py +0 -0
- {kevin-toolbox-dev-1.2.7 → kevin-toolbox-dev-1.3.0}/kevin_toolbox/computer_science/algorithm/combinatorial_optimization/test/__init__.py +0 -0
- {kevin-toolbox-dev-1.2.7 → kevin-toolbox-dev-1.3.0}/kevin_toolbox/computer_science/algorithm/combinatorial_optimization/test/test_get_subset_with_largest_product.py +0 -0
- {kevin-toolbox-dev-1.2.7 → kevin-toolbox-dev-1.3.0}/kevin_toolbox/computer_science/algorithm/combinatorial_optimization/test/test_zero_one_knapsack_problem.py +0 -0
- {kevin-toolbox-dev-1.2.7 → kevin-toolbox-dev-1.3.0}/kevin_toolbox/computer_science/algorithm/combinatorial_optimization/zero_one_knapsack_problem.py +0 -0
- {kevin-toolbox-dev-1.2.7 → kevin-toolbox-dev-1.3.0}/kevin_toolbox/computer_science/algorithm/execution_graph/__init__.py +0 -0
- {kevin-toolbox-dev-1.2.7 → kevin-toolbox-dev-1.3.0}/kevin_toolbox/computer_science/algorithm/execution_graph/jump_node.py +0 -0
- {kevin-toolbox-dev-1.2.7 → kevin-toolbox-dev-1.3.0}/kevin_toolbox/computer_science/algorithm/execution_graph/random_node.py +0 -0
- {kevin-toolbox-dev-1.2.7 → kevin-toolbox-dev-1.3.0}/kevin_toolbox/computer_science/algorithm/execution_graph/simple_node.py +0 -0
- {kevin-toolbox-dev-1.2.7 → kevin-toolbox-dev-1.3.0}/kevin_toolbox/computer_science/algorithm/for_dict/__init__.py +0 -0
- {kevin-toolbox-dev-1.2.7 → kevin-toolbox-dev-1.3.0}/kevin_toolbox/computer_science/algorithm/for_dict/deep_update.py +0 -0
- {kevin-toolbox-dev-1.2.7 → kevin-toolbox-dev-1.3.0}/kevin_toolbox/computer_science/algorithm/for_seq/__init__.py +0 -0
- {kevin-toolbox-dev-1.2.7 → kevin-toolbox-dev-1.3.0}/kevin_toolbox/computer_science/algorithm/for_seq/chunk_generator.py +0 -0
- {kevin-toolbox-dev-1.2.7 → kevin-toolbox-dev-1.3.0}/kevin_toolbox/computer_science/algorithm/for_seq/flatten_list.py +0 -0
- {kevin-toolbox-dev-1.2.7 → kevin-toolbox-dev-1.3.0}/kevin_toolbox/computer_science/algorithm/for_seq/get_subsets.py +0 -0
- {kevin-toolbox-dev-1.2.7 → kevin-toolbox-dev-1.3.0}/kevin_toolbox/computer_science/algorithm/locks/__init__.py +0 -0
- {kevin-toolbox-dev-1.2.7 → kevin-toolbox-dev-1.3.0}/kevin_toolbox/computer_science/algorithm/locks/mutex_lock.py +0 -0
- {kevin-toolbox-dev-1.2.7 → kevin-toolbox-dev-1.3.0}/kevin_toolbox/computer_science/algorithm/parallel_and_concurrent/__init__.py +0 -0
- {kevin-toolbox-dev-1.2.7 → kevin-toolbox-dev-1.3.0}/kevin_toolbox/computer_science/algorithm/parallel_and_concurrent/async_executor.py +0 -0
- {kevin-toolbox-dev-1.2.7 → kevin-toolbox-dev-1.3.0}/kevin_toolbox/computer_science/algorithm/parallel_and_concurrent/multi_thread_execute.py +0 -0
- {kevin-toolbox-dev-1.2.7 → kevin-toolbox-dev-1.3.0}/kevin_toolbox/computer_science/algorithm/pareto_front/__init__.py +0 -0
- {kevin-toolbox-dev-1.2.7 → kevin-toolbox-dev-1.3.0}/kevin_toolbox/computer_science/algorithm/pareto_front/get_pareto_points_idx.py +0 -0
- {kevin-toolbox-dev-1.2.7 → kevin-toolbox-dev-1.3.0}/kevin_toolbox/computer_science/algorithm/registration/__init__.py +0 -0
- {kevin-toolbox-dev-1.2.7 → kevin-toolbox-dev-1.3.0}/kevin_toolbox/computer_science/algorithm/scheduler/__init__.py +0 -0
- {kevin-toolbox-dev-1.2.7 → kevin-toolbox-dev-1.3.0}/kevin_toolbox/computer_science/algorithm/scheduler/strategy_manager.py +0 -0
- {kevin-toolbox-dev-1.2.7 → kevin-toolbox-dev-1.3.0}/kevin_toolbox/computer_science/algorithm/scheduler/trigger.py +0 -0
- {kevin-toolbox-dev-1.2.7 → kevin-toolbox-dev-1.3.0}/kevin_toolbox/computer_science/algorithm/search/__init__.py +0 -0
- {kevin-toolbox-dev-1.2.7 → kevin-toolbox-dev-1.3.0}/kevin_toolbox/computer_science/algorithm/search/binary_search.py +0 -0
- {kevin-toolbox-dev-1.2.7 → kevin-toolbox-dev-1.3.0}/kevin_toolbox/computer_science/algorithm/utils/__init__.py +0 -0
- {kevin-toolbox-dev-1.2.7 → kevin-toolbox-dev-1.3.0}/kevin_toolbox/computer_science/data_structure/__init__.py +0 -0
- {kevin-toolbox-dev-1.2.7 → kevin-toolbox-dev-1.3.0}/kevin_toolbox/computer_science/data_structure/executor.py +0 -0
- {kevin-toolbox-dev-1.2.7 → kevin-toolbox-dev-1.3.0}/kevin_toolbox/dangerous/__init__.py +0 -0
- {kevin-toolbox-dev-1.2.7 → kevin-toolbox-dev-1.3.0}/kevin_toolbox/dangerous/dump_into_pickle_with_executor_attached.py +0 -0
- {kevin-toolbox-dev-1.2.7 → kevin-toolbox-dev-1.3.0}/kevin_toolbox/data_flow/__init__.py +0 -0
- {kevin-toolbox-dev-1.2.7 → kevin-toolbox-dev-1.3.0}/kevin_toolbox/data_flow/core/__init__.py +0 -0
- {kevin-toolbox-dev-1.2.7 → kevin-toolbox-dev-1.3.0}/kevin_toolbox/data_flow/core/cache/__init__.py +0 -0
- {kevin-toolbox-dev-1.2.7 → kevin-toolbox-dev-1.3.0}/kevin_toolbox/data_flow/core/cache/cache_manager_for_iterator.py +0 -0
- {kevin-toolbox-dev-1.2.7 → kevin-toolbox-dev-1.3.0}/kevin_toolbox/data_flow/core/reader/__init__.py +0 -0
- {kevin-toolbox-dev-1.2.7 → kevin-toolbox-dev-1.3.0}/kevin_toolbox/data_flow/core/reader/file_iterative_reader.py +0 -0
- {kevin-toolbox-dev-1.2.7 → kevin-toolbox-dev-1.3.0}/kevin_toolbox/data_flow/core/reader/unified_reader.py +0 -0
- {kevin-toolbox-dev-1.2.7 → kevin-toolbox-dev-1.3.0}/kevin_toolbox/data_flow/core/reader/unified_reader_base.py +0 -0
- {kevin-toolbox-dev-1.2.7 → kevin-toolbox-dev-1.3.0}/kevin_toolbox/data_flow/file/__init__.py +0 -0
- {kevin-toolbox-dev-1.2.7 → kevin-toolbox-dev-1.3.0}/kevin_toolbox/data_flow/file/json_/__init__.py +0 -0
- {kevin-toolbox-dev-1.2.7 → kevin-toolbox-dev-1.3.0}/kevin_toolbox/data_flow/file/json_/converter/__init__.py +0 -0
- {kevin-toolbox-dev-1.2.7 → kevin-toolbox-dev-1.3.0}/kevin_toolbox/data_flow/file/json_/converter/convert_dict_key_to_number.py +0 -0
- {kevin-toolbox-dev-1.2.7 → kevin-toolbox-dev-1.3.0}/kevin_toolbox/data_flow/file/json_/converter/convert_ndarray_to_list.py +0 -0
- {kevin-toolbox-dev-1.2.7 → kevin-toolbox-dev-1.3.0}/kevin_toolbox/data_flow/file/json_/converter/escape_non_str_dict_key.py +0 -0
- {kevin-toolbox-dev-1.2.7 → kevin-toolbox-dev-1.3.0}/kevin_toolbox/data_flow/file/json_/converter/escape_tuple.py +0 -0
- {kevin-toolbox-dev-1.2.7 → kevin-toolbox-dev-1.3.0}/kevin_toolbox/data_flow/file/json_/converter/integrate.py +0 -0
- {kevin-toolbox-dev-1.2.7 → kevin-toolbox-dev-1.3.0}/kevin_toolbox/data_flow/file/json_/converter/unescape_non_str_dict_key.py +0 -0
- {kevin-toolbox-dev-1.2.7 → kevin-toolbox-dev-1.3.0}/kevin_toolbox/data_flow/file/json_/converter/unescape_tuple.py +0 -0
- {kevin-toolbox-dev-1.2.7 → kevin-toolbox-dev-1.3.0}/kevin_toolbox/data_flow/file/json_/write_json.py +0 -0
- {kevin-toolbox-dev-1.2.7 → kevin-toolbox-dev-1.3.0}/kevin_toolbox/data_flow/file/kevin_notation/__init__.py +0 -0
- {kevin-toolbox-dev-1.2.7 → kevin-toolbox-dev-1.3.0}/kevin_toolbox/data_flow/file/kevin_notation/converter.py +0 -0
- {kevin-toolbox-dev-1.2.7 → kevin-toolbox-dev-1.3.0}/kevin_toolbox/data_flow/file/kevin_notation/kevin_notation_reader.py +0 -0
- {kevin-toolbox-dev-1.2.7 → kevin-toolbox-dev-1.3.0}/kevin_toolbox/data_flow/file/kevin_notation/kevin_notation_writer.py +0 -0
- {kevin-toolbox-dev-1.2.7 → kevin-toolbox-dev-1.3.0}/kevin_toolbox/data_flow/file/kevin_notation/read.py +0 -0
- {kevin-toolbox-dev-1.2.7 → kevin-toolbox-dev-1.3.0}/kevin_toolbox/data_flow/file/kevin_notation/test/__init__.py +0 -0
- {kevin-toolbox-dev-1.2.7 → kevin-toolbox-dev-1.3.0}/kevin_toolbox/data_flow/file/kevin_notation/test/test_data/__init__.py +0 -0
- {kevin-toolbox-dev-1.2.7 → kevin-toolbox-dev-1.3.0}/kevin_toolbox/data_flow/file/kevin_notation/test/test_data/data_0.py +0 -0
- {kevin-toolbox-dev-1.2.7 → kevin-toolbox-dev-1.3.0}/kevin_toolbox/data_flow/file/kevin_notation/test/test_data/data_1.py +0 -0
- {kevin-toolbox-dev-1.2.7 → kevin-toolbox-dev-1.3.0}/kevin_toolbox/data_flow/file/kevin_notation/test/test_data/data_all.py +0 -0
- {kevin-toolbox-dev-1.2.7 → kevin-toolbox-dev-1.3.0}/kevin_toolbox/data_flow/file/kevin_notation/test/test_kevin_notation.py +0 -0
- {kevin-toolbox-dev-1.2.7 → kevin-toolbox-dev-1.3.0}/kevin_toolbox/data_flow/file/kevin_notation/write.py +0 -0
- {kevin-toolbox-dev-1.2.7 → kevin-toolbox-dev-1.3.0}/kevin_toolbox/data_flow/file/markdown/__init__.py +0 -0
- {kevin-toolbox-dev-1.2.7 → kevin-toolbox-dev-1.3.0}/kevin_toolbox/data_flow/file/markdown/generate_link.py +0 -0
- {kevin-toolbox-dev-1.2.7 → kevin-toolbox-dev-1.3.0}/kevin_toolbox/data_flow/file/markdown/generate_list.py +0 -0
- {kevin-toolbox-dev-1.2.7 → kevin-toolbox-dev-1.3.0}/kevin_toolbox/developing/__init__.py +0 -0
- {kevin-toolbox-dev-1.2.7 → kevin-toolbox-dev-1.3.0}/kevin_toolbox/developing/decorator/__init__.py +0 -0
- {kevin-toolbox-dev-1.2.7 → kevin-toolbox-dev-1.3.0}/kevin_toolbox/developing/decorator/restore_original_work_path.py +0 -0
- {kevin-toolbox-dev-1.2.7 → kevin-toolbox-dev-1.3.0}/kevin_toolbox/developing/design_pattern/__init__.py +0 -0
- {kevin-toolbox-dev-1.2.7 → kevin-toolbox-dev-1.3.0}/kevin_toolbox/developing/design_pattern/producer_consumer/__init__.py +0 -0
- {kevin-toolbox-dev-1.2.7 → kevin-toolbox-dev-1.3.0}/kevin_toolbox/developing/design_pattern/producer_consumer/consumer.py +0 -0
- {kevin-toolbox-dev-1.2.7 → kevin-toolbox-dev-1.3.0}/kevin_toolbox/developing/design_pattern/producer_consumer/for_cvf.py +0 -0
- {kevin-toolbox-dev-1.2.7 → kevin-toolbox-dev-1.3.0}/kevin_toolbox/developing/design_pattern/producer_consumer/getter.py +0 -0
- {kevin-toolbox-dev-1.2.7 → kevin-toolbox-dev-1.3.0}/kevin_toolbox/developing/design_pattern/producer_consumer/graph.py +0 -0
- {kevin-toolbox-dev-1.2.7 → kevin-toolbox-dev-1.3.0}/kevin_toolbox/developing/design_pattern/producer_consumer/node.py +0 -0
- {kevin-toolbox-dev-1.2.7 → kevin-toolbox-dev-1.3.0}/kevin_toolbox/developing/design_pattern/producer_consumer/producer.py +0 -0
- {kevin-toolbox-dev-1.2.7 → kevin-toolbox-dev-1.3.0}/kevin_toolbox/developing/design_pattern/producer_consumer/sender.py +0 -0
- {kevin-toolbox-dev-1.2.7 → kevin-toolbox-dev-1.3.0}/kevin_toolbox/developing/design_pattern/singleton/__init__.py +0 -0
- {kevin-toolbox-dev-1.2.7 → kevin-toolbox-dev-1.3.0}/kevin_toolbox/developing/design_pattern/singleton/singleton_for_uid.py +0 -0
- {kevin-toolbox-dev-1.2.7 → kevin-toolbox-dev-1.3.0}/kevin_toolbox/developing/general_matrix_multiplication.py +0 -0
- {kevin-toolbox-dev-1.2.7 → kevin-toolbox-dev-1.3.0}/kevin_toolbox/developing/numerical_characteristics/__init__.py +0 -0
- {kevin-toolbox-dev-1.2.7 → kevin-toolbox-dev-1.3.0}/kevin_toolbox/developing/numerical_characteristics/iou.py +0 -0
- {kevin-toolbox-dev-1.2.7 → kevin-toolbox-dev-1.3.0}/kevin_toolbox/developing/temperate/__init__.py +0 -0
- {kevin-toolbox-dev-1.2.7 → kevin-toolbox-dev-1.3.0}/kevin_toolbox/developing/temperate/iterator_base.py +0 -0
- {kevin-toolbox-dev-1.2.7 → kevin-toolbox-dev-1.3.0}/kevin_toolbox/developing/temperate/my_iterator.py +0 -0
- {kevin-toolbox-dev-1.2.7 → kevin-toolbox-dev-1.3.0}/kevin_toolbox/developing/temperate/my_iterator_base.py +0 -0
- {kevin-toolbox-dev-1.2.7 → kevin-toolbox-dev-1.3.0}/kevin_toolbox/developing/temperate/sequence_map_base.py +0 -0
- {kevin-toolbox-dev-1.2.7 → kevin-toolbox-dev-1.3.0}/kevin_toolbox/developing/test.py +0 -0
- {kevin-toolbox-dev-1.2.7 → kevin-toolbox-dev-1.3.0}/kevin_toolbox/env_info/__init__.py +0 -0
- {kevin-toolbox-dev-1.2.7 → kevin-toolbox-dev-1.3.0}/kevin_toolbox/env_info/check_validity_and_uninstall.py +0 -0
- {kevin-toolbox-dev-1.2.7 → kevin-toolbox-dev-1.3.0}/kevin_toolbox/env_info/check_version_and_update.py +0 -0
- {kevin-toolbox-dev-1.2.7 → kevin-toolbox-dev-1.3.0}/kevin_toolbox/env_info/test/__init__.py +0 -0
- {kevin-toolbox-dev-1.2.7 → kevin-toolbox-dev-1.3.0}/kevin_toolbox/env_info/test/test_version.py +0 -0
- {kevin-toolbox-dev-1.2.7 → kevin-toolbox-dev-1.3.0}/kevin_toolbox/env_info/version/__init__.py +0 -0
- {kevin-toolbox-dev-1.2.7 → kevin-toolbox-dev-1.3.0}/kevin_toolbox/env_info/version/compare_version.py +0 -0
- {kevin-toolbox-dev-1.2.7 → kevin-toolbox-dev-1.3.0}/kevin_toolbox/env_info/version/parse_version.py +0 -0
- {kevin-toolbox-dev-1.2.7 → kevin-toolbox-dev-1.3.0}/kevin_toolbox/env_info/version/sort_version_ls.py +0 -0
- {kevin-toolbox-dev-1.2.7 → kevin-toolbox-dev-1.3.0}/kevin_toolbox/geometry/__init__.py +0 -0
- {kevin-toolbox-dev-1.2.7 → kevin-toolbox-dev-1.3.0}/kevin_toolbox/geometry/for_boxes/__init__.py +0 -0
- {kevin-toolbox-dev-1.2.7 → kevin-toolbox-dev-1.3.0}/kevin_toolbox/geometry/for_boxes/__old_version/__init__.py +0 -0
- {kevin-toolbox-dev-1.2.7 → kevin-toolbox-dev-1.3.0}/kevin_toolbox/geometry/for_boxes/__old_version/cal_iou_between_box.py +0 -0
- {kevin-toolbox-dev-1.2.7 → kevin-toolbox-dev-1.3.0}/kevin_toolbox/geometry/for_boxes/boolean_algebra_for_boxes.py +0 -0
- {kevin-toolbox-dev-1.2.7 → kevin-toolbox-dev-1.3.0}/kevin_toolbox/geometry/for_boxes/cal_area_of_boxes.py +0 -0
- {kevin-toolbox-dev-1.2.7 → kevin-toolbox-dev-1.3.0}/kevin_toolbox/geometry/for_boxes/cal_iou_between_boxes.py +0 -0
- {kevin-toolbox-dev-1.2.7 → kevin-toolbox-dev-1.3.0}/kevin_toolbox/geometry/for_boxes/convert_boxes_from_coord_to_grid_index.py +0 -0
- {kevin-toolbox-dev-1.2.7 → kevin-toolbox-dev-1.3.0}/kevin_toolbox/geometry/for_boxes/detect_collision.py +0 -0
- {kevin-toolbox-dev-1.2.7 → kevin-toolbox-dev-1.3.0}/kevin_toolbox/geometry/for_boxes/detect_collision_among_boxes_ls.py +0 -0
- {kevin-toolbox-dev-1.2.7 → kevin-toolbox-dev-1.3.0}/kevin_toolbox/geometry/for_boxes/detect_collision_inside_boxes.py +0 -0
- {kevin-toolbox-dev-1.2.7 → kevin-toolbox-dev-1.3.0}/kevin_toolbox/geometry/for_boxes/detect_overlap.py +0 -0
- {kevin-toolbox-dev-1.2.7 → kevin-toolbox-dev-1.3.0}/kevin_toolbox/geometry/for_boxes/get_ticks_of_boxes.py +0 -0
- {kevin-toolbox-dev-1.2.7 → kevin-toolbox-dev-1.3.0}/kevin_toolbox/machine_learning/__init__.py +0 -0
- {kevin-toolbox-dev-1.2.7 → kevin-toolbox-dev-1.3.0}/kevin_toolbox/machine_learning/dataset/__init__.py +0 -0
- {kevin-toolbox-dev-1.2.7 → kevin-toolbox-dev-1.3.0}/kevin_toolbox/machine_learning/dataset/face/__init__.py +0 -0
- {kevin-toolbox-dev-1.2.7 → kevin-toolbox-dev-1.3.0}/kevin_toolbox/machine_learning/dataset/face/analysis/__init__.py +0 -0
- {kevin-toolbox-dev-1.2.7 → kevin-toolbox-dev-1.3.0}/kevin_toolbox/machine_learning/dataset/face/analysis/get_fail_case_from_iterator.py +0 -0
- {kevin-toolbox-dev-1.2.7 → kevin-toolbox-dev-1.3.0}/kevin_toolbox/machine_learning/dataset/face/dummy/__init__.py +0 -0
- {kevin-toolbox-dev-1.2.7 → kevin-toolbox-dev-1.3.0}/kevin_toolbox/machine_learning/dataset/face/dummy/dummy_data.py +0 -0
- {kevin-toolbox-dev-1.2.7 → kevin-toolbox-dev-1.3.0}/kevin_toolbox/machine_learning/dataset/face/verification/__init__.py +0 -0
- {kevin-toolbox-dev-1.2.7 → kevin-toolbox-dev-1.3.0}/kevin_toolbox/machine_learning/dataset/face/verification/build_generator.py +0 -0
- {kevin-toolbox-dev-1.2.7 → kevin-toolbox-dev-1.3.0}/kevin_toolbox/machine_learning/dataset/face/verification/build_iterator.py +0 -0
- {kevin-toolbox-dev-1.2.7 → kevin-toolbox-dev-1.3.0}/kevin_toolbox/machine_learning/dataset/face/verification/factory.py +0 -0
- {kevin-toolbox-dev-1.2.7 → kevin-toolbox-dev-1.3.0}/kevin_toolbox/machine_learning/dataset/face/verification/get_executor_ls/__by_block/__init__.py +0 -0
- {kevin-toolbox-dev-1.2.7 → kevin-toolbox-dev-1.3.0}/kevin_toolbox/machine_learning/dataset/face/verification/get_executor_ls/__by_block/along_axis.py +0 -0
- {kevin-toolbox-dev-1.2.7 → kevin-toolbox-dev-1.3.0}/kevin_toolbox/machine_learning/dataset/face/verification/get_executor_ls/__by_block/along_diagonal.py +0 -0
- {kevin-toolbox-dev-1.2.7 → kevin-toolbox-dev-1.3.0}/kevin_toolbox/machine_learning/dataset/face/verification/get_executor_ls/__by_block/of_all.py +0 -0
- {kevin-toolbox-dev-1.2.7 → kevin-toolbox-dev-1.3.0}/kevin_toolbox/machine_learning/dataset/face/verification/get_executor_ls/__by_block/of_triangle.py +0 -0
- {kevin-toolbox-dev-1.2.7 → kevin-toolbox-dev-1.3.0}/kevin_toolbox/machine_learning/dataset/face/verification/get_executor_ls/__init__.py +0 -0
- {kevin-toolbox-dev-1.2.7 → kevin-toolbox-dev-1.3.0}/kevin_toolbox/machine_learning/dataset/face/verification/get_executor_ls/by_block.py +0 -0
- {kevin-toolbox-dev-1.2.7 → kevin-toolbox-dev-1.3.0}/kevin_toolbox/machine_learning/dataset/face/verification/get_executor_ls/by_samples.py +0 -0
- {kevin-toolbox-dev-1.2.7 → kevin-toolbox-dev-1.3.0}/kevin_toolbox/machine_learning/dataset/face/verification/merge.py +0 -0
- {kevin-toolbox-dev-1.2.7 → kevin-toolbox-dev-1.3.0}/kevin_toolbox/machine_learning/statistician/__init__.py +0 -0
- {kevin-toolbox-dev-1.2.7 → kevin-toolbox-dev-1.3.0}/kevin_toolbox/machine_learning/statistician/binary_classification/__init__.py +0 -0
- {kevin-toolbox-dev-1.2.7 → kevin-toolbox-dev-1.3.0}/kevin_toolbox/machine_learning/statistician/binary_classification/confusion_matrices/__init__.py +0 -0
- {kevin-toolbox-dev-1.2.7 → kevin-toolbox-dev-1.3.0}/kevin_toolbox/machine_learning/statistician/binary_classification/confusion_matrices/accumulator_for_cfm.py +0 -0
- {kevin-toolbox-dev-1.2.7 → kevin-toolbox-dev-1.3.0}/kevin_toolbox/machine_learning/statistician/binary_classification/confusion_matrices/cal_cfm.py +0 -0
- {kevin-toolbox-dev-1.2.7 → kevin-toolbox-dev-1.3.0}/kevin_toolbox/machine_learning/statistician/binary_classification/confusion_matrices/cal_cfm_iteratively_by_chunk.py +0 -0
- {kevin-toolbox-dev-1.2.7 → kevin-toolbox-dev-1.3.0}/kevin_toolbox/machine_learning/statistician/binary_classification/confusion_matrices/cal_tpr_and_fpr.py +0 -0
- {kevin-toolbox-dev-1.2.7 → kevin-toolbox-dev-1.3.0}/kevin_toolbox/machine_learning/statistician/binary_classification/confusion_matrices/convert.py +0 -0
- {kevin-toolbox-dev-1.2.7 → kevin-toolbox-dev-1.3.0}/kevin_toolbox/machine_learning/statistician/binary_classification/confusion_matrices/merge_cfm_ls.py +0 -0
- {kevin-toolbox-dev-1.2.7 → kevin-toolbox-dev-1.3.0}/kevin_toolbox/math/__init__.py +0 -0
- {kevin-toolbox-dev-1.2.7 → kevin-toolbox-dev-1.3.0}/kevin_toolbox/math/dimension/__init__.py +0 -0
- {kevin-toolbox-dev-1.2.7 → kevin-toolbox-dev-1.3.0}/kevin_toolbox/math/dimension/concat_and_split/__init__.py +0 -0
- {kevin-toolbox-dev-1.2.7 → kevin-toolbox-dev-1.3.0}/kevin_toolbox/math/dimension/concat_and_split/computational_tree.py +0 -0
- {kevin-toolbox-dev-1.2.7 → kevin-toolbox-dev-1.3.0}/kevin_toolbox/math/dimension/concat_and_split/concat_crops_into_whole.py +0 -0
- {kevin-toolbox-dev-1.2.7 → kevin-toolbox-dev-1.3.0}/kevin_toolbox/math/dimension/concat_and_split/split_whole_into_crops.py +0 -0
- {kevin-toolbox-dev-1.2.7 → kevin-toolbox-dev-1.3.0}/kevin_toolbox/math/dimension/coordinates/__init__.py +0 -0
- {kevin-toolbox-dev-1.2.7 → kevin-toolbox-dev-1.3.0}/kevin_toolbox/math/dimension/coordinates/convert/__init__.py +0 -0
- {kevin-toolbox-dev-1.2.7 → kevin-toolbox-dev-1.3.0}/kevin_toolbox/math/dimension/coordinates/convert/convert_format.py +0 -0
- {kevin-toolbox-dev-1.2.7 → kevin-toolbox-dev-1.3.0}/kevin_toolbox/math/dimension/coordinates/generate/__init__.py +0 -0
- {kevin-toolbox-dev-1.2.7 → kevin-toolbox-dev-1.3.0}/kevin_toolbox/math/dimension/coordinates/generate/generate_integrated_api.py +0 -0
- {kevin-toolbox-dev-1.2.7 → kevin-toolbox-dev-1.3.0}/kevin_toolbox/math/dimension/coordinates/generate/generate_shuffled_index_ls.py +0 -0
- {kevin-toolbox-dev-1.2.7 → kevin-toolbox-dev-1.3.0}/kevin_toolbox/math/dimension/coordinates/generate/generate_z_pattern_indices_ls.py +0 -0
- {kevin-toolbox-dev-1.2.7 → kevin-toolbox-dev-1.3.0}/kevin_toolbox/math/dimension/coordinates/generate/normal_indices_generator.py +0 -0
- {kevin-toolbox-dev-1.2.7 → kevin-toolbox-dev-1.3.0}/kevin_toolbox/math/dimension/reshape/__init__.py +0 -0
- {kevin-toolbox-dev-1.2.7 → kevin-toolbox-dev-1.3.0}/kevin_toolbox/math/dimension/reshape/flatten_along_pattern.py +0 -0
- {kevin-toolbox-dev-1.2.7 → kevin-toolbox-dev-1.3.0}/kevin_toolbox/math/dimension/reshape/merge_blocks.py +0 -0
- {kevin-toolbox-dev-1.2.7 → kevin-toolbox-dev-1.3.0}/kevin_toolbox/math/dimension/reshape/split_blocks.py +0 -0
- {kevin-toolbox-dev-1.2.7 → kevin-toolbox-dev-1.3.0}/kevin_toolbox/math/dimension/reshape/unflatten_along_pattern.py +0 -0
- {kevin-toolbox-dev-1.2.7 → kevin-toolbox-dev-1.3.0}/kevin_toolbox/math/dimension/transpose/__init__.py +0 -0
- {kevin-toolbox-dev-1.2.7 → kevin-toolbox-dev-1.3.0}/kevin_toolbox/math/dimension/transpose/get_inverse_of_transpose_index_ls.py +0 -0
- {kevin-toolbox-dev-1.2.7 → kevin-toolbox-dev-1.3.0}/kevin_toolbox/math/dimension/transpose/transpose_inside_axis.py +0 -0
- {kevin-toolbox-dev-1.2.7 → kevin-toolbox-dev-1.3.0}/kevin_toolbox/math/number_theory/__init__.py +0 -0
- {kevin-toolbox-dev-1.2.7 → kevin-toolbox-dev-1.3.0}/kevin_toolbox/math/number_theory/cache.py +0 -0
- {kevin-toolbox-dev-1.2.7 → kevin-toolbox-dev-1.3.0}/kevin_toolbox/math/number_theory/get_greatest_common_divisor.py +0 -0
- {kevin-toolbox-dev-1.2.7 → kevin-toolbox-dev-1.3.0}/kevin_toolbox/math/number_theory/get_primes.py +0 -0
- {kevin-toolbox-dev-1.2.7 → kevin-toolbox-dev-1.3.0}/kevin_toolbox/math/number_theory/prime_factorization.py +0 -0
- {kevin-toolbox-dev-1.2.7 → kevin-toolbox-dev-1.3.0}/kevin_toolbox/math/number_theory/test/__init__.py +0 -0
- {kevin-toolbox-dev-1.2.7 → kevin-toolbox-dev-1.3.0}/kevin_toolbox/math/number_theory/test/test_get_greatest_common_divisor.py +0 -0
- {kevin-toolbox-dev-1.2.7 → kevin-toolbox-dev-1.3.0}/kevin_toolbox/math/number_theory/test/test_get_primes.py +0 -0
- {kevin-toolbox-dev-1.2.7 → kevin-toolbox-dev-1.3.0}/kevin_toolbox/math/number_theory/test/test_prime_factorization.py +0 -0
- {kevin-toolbox-dev-1.2.7 → kevin-toolbox-dev-1.3.0}/kevin_toolbox/math/transform/__init__.py +0 -0
- {kevin-toolbox-dev-1.2.7 → kevin-toolbox-dev-1.3.0}/kevin_toolbox/math/transform/dct/__init__.py +0 -0
- {kevin-toolbox-dev-1.2.7 → kevin-toolbox-dev-1.3.0}/kevin_toolbox/math/transform/dct/dct_calculator.py +0 -0
- {kevin-toolbox-dev-1.2.7 → kevin-toolbox-dev-1.3.0}/kevin_toolbox/math/transform/dct/generate_dct_trans_matrix.py +0 -0
- {kevin-toolbox-dev-1.2.7 → kevin-toolbox-dev-1.3.0}/kevin_toolbox/math/transform/scaling_and_shift/__init__.py +0 -0
- {kevin-toolbox-dev-1.2.7 → kevin-toolbox-dev-1.3.0}/kevin_toolbox/math/transform/scaling_and_shift/scaling.py +0 -0
- {kevin-toolbox-dev-1.2.7 → kevin-toolbox-dev-1.3.0}/kevin_toolbox/math/utils/__init__.py +0 -0
- {kevin-toolbox-dev-1.2.7 → kevin-toolbox-dev-1.3.0}/kevin_toolbox/math/utils/convert_dtype.py +0 -0
- {kevin-toolbox-dev-1.2.7 → kevin-toolbox-dev-1.3.0}/kevin_toolbox/math/utils/get_crop_by_box.py +0 -0
- {kevin-toolbox-dev-1.2.7 → kevin-toolbox-dev-1.3.0}/kevin_toolbox/math/utils/get_function_table_for_array_and_tensor.py +0 -0
- {kevin-toolbox-dev-1.2.7 → kevin-toolbox-dev-1.3.0}/kevin_toolbox/math/utils/set_crop_by_box.py +0 -0
- {kevin-toolbox-dev-1.2.7 → kevin-toolbox-dev-1.3.0}/kevin_toolbox/math/utils/spilt_integer_most_evenly.py +0 -0
- {kevin-toolbox-dev-1.2.7 → kevin-toolbox-dev-1.3.0}/kevin_toolbox/nested_dict_list/__init__.py +0 -0
- {kevin-toolbox-dev-1.2.7 → kevin-toolbox-dev-1.3.0}/kevin_toolbox/nested_dict_list/count_leaf_node_nums.py +0 -0
- {kevin-toolbox-dev-1.2.7 → kevin-toolbox-dev-1.3.0}/kevin_toolbox/nested_dict_list/get_hash.py +0 -0
- {kevin-toolbox-dev-1.2.7 → kevin-toolbox-dev-1.3.0}/kevin_toolbox/nested_dict_list/get_nodes.py +0 -0
- {kevin-toolbox-dev-1.2.7 → kevin-toolbox-dev-1.3.0}/kevin_toolbox/nested_dict_list/get_value.py +0 -0
- {kevin-toolbox-dev-1.2.7 → kevin-toolbox-dev-1.3.0}/kevin_toolbox/nested_dict_list/name_handler/__init__.py +0 -0
- {kevin-toolbox-dev-1.2.7 → kevin-toolbox-dev-1.3.0}/kevin_toolbox/nested_dict_list/name_handler/build_name.py +0 -0
- {kevin-toolbox-dev-1.2.7 → kevin-toolbox-dev-1.3.0}/kevin_toolbox/nested_dict_list/name_handler/escape_node.py +0 -0
- {kevin-toolbox-dev-1.2.7 → kevin-toolbox-dev-1.3.0}/kevin_toolbox/nested_dict_list/name_handler/parse_name.py +0 -0
- {kevin-toolbox-dev-1.2.7 → kevin-toolbox-dev-1.3.0}/kevin_toolbox/nested_dict_list/serializer/backends/__init__.py +0 -0
- {kevin-toolbox-dev-1.2.7 → kevin-toolbox-dev-1.3.0}/kevin_toolbox/nested_dict_list/serializer/backends/_json_.py +0 -0
- {kevin-toolbox-dev-1.2.7 → kevin-toolbox-dev-1.3.0}/kevin_toolbox/nested_dict_list/serializer/backends/_ndl.py +0 -0
- {kevin-toolbox-dev-1.2.7 → kevin-toolbox-dev-1.3.0}/kevin_toolbox/nested_dict_list/serializer/backends/_numpy_bin.py +0 -0
- {kevin-toolbox-dev-1.2.7 → kevin-toolbox-dev-1.3.0}/kevin_toolbox/nested_dict_list/serializer/backends/_numpy_npy.py +0 -0
- {kevin-toolbox-dev-1.2.7 → kevin-toolbox-dev-1.3.0}/kevin_toolbox/nested_dict_list/serializer/backends/_pickle_.py +0 -0
- {kevin-toolbox-dev-1.2.7 → kevin-toolbox-dev-1.3.0}/kevin_toolbox/nested_dict_list/serializer/backends/_skip_all.py +0 -0
- {kevin-toolbox-dev-1.2.7 → kevin-toolbox-dev-1.3.0}/kevin_toolbox/nested_dict_list/serializer/backends/_skip_simple.py +0 -0
- {kevin-toolbox-dev-1.2.7 → kevin-toolbox-dev-1.3.0}/kevin_toolbox/nested_dict_list/serializer/backends/_torch_all.py +0 -0
- {kevin-toolbox-dev-1.2.7 → kevin-toolbox-dev-1.3.0}/kevin_toolbox/nested_dict_list/serializer/backends/_torch_tensor.py +0 -0
- {kevin-toolbox-dev-1.2.7 → kevin-toolbox-dev-1.3.0}/kevin_toolbox/nested_dict_list/serializer/backends/backend_base.py +0 -0
- {kevin-toolbox-dev-1.2.7 → kevin-toolbox-dev-1.3.0}/kevin_toolbox/nested_dict_list/traverse.py +0 -0
- {kevin-toolbox-dev-1.2.7 → kevin-toolbox-dev-1.3.0}/kevin_toolbox/nested_dict_list/value_parser/__init__.py +0 -0
- {kevin-toolbox-dev-1.2.7 → kevin-toolbox-dev-1.3.0}/kevin_toolbox/nested_dict_list/value_parser/cal_relation_between_references.py +0 -0
- {kevin-toolbox-dev-1.2.7 → kevin-toolbox-dev-1.3.0}/kevin_toolbox/nested_dict_list/value_parser/eval_references.py +0 -0
- {kevin-toolbox-dev-1.2.7 → kevin-toolbox-dev-1.3.0}/kevin_toolbox/nested_dict_list/value_parser/parse_and_eval_references.py +0 -0
- {kevin-toolbox-dev-1.2.7 → kevin-toolbox-dev-1.3.0}/kevin_toolbox/nested_dict_list/value_parser/parse_references.py +0 -0
- {kevin-toolbox-dev-1.2.7 → kevin-toolbox-dev-1.3.0}/kevin_toolbox/patches/__init__.py +0 -0
- {kevin-toolbox-dev-1.2.7 → kevin-toolbox-dev-1.3.0}/kevin_toolbox/patches/for_matplotlib/__init__.py +0 -0
- {kevin-toolbox-dev-1.2.7 → kevin-toolbox-dev-1.3.0}/kevin_toolbox/patches/for_matplotlib/add_trajectory_2d.py +0 -0
- {kevin-toolbox-dev-1.2.7 → kevin-toolbox-dev-1.3.0}/kevin_toolbox/patches/for_matplotlib/add_trajectory_3d.py +0 -0
- {kevin-toolbox-dev-1.2.7 → kevin-toolbox-dev-1.3.0}/kevin_toolbox/patches/for_matplotlib/arrow3d.py +0 -0
- {kevin-toolbox-dev-1.2.7 → kevin-toolbox-dev-1.3.0}/kevin_toolbox/patches/for_numpy/linalg/__init__.py +0 -0
- {kevin-toolbox-dev-1.2.7 → kevin-toolbox-dev-1.3.0}/kevin_toolbox/patches/for_numpy/linalg/cos_similar.py +0 -0
- {kevin-toolbox-dev-1.2.7 → kevin-toolbox-dev-1.3.0}/kevin_toolbox/patches/for_numpy/linalg/normalize.py +0 -0
- {kevin-toolbox-dev-1.2.7 → kevin-toolbox-dev-1.3.0}/kevin_toolbox/patches/for_optuna/__init__.py +0 -0
- {kevin-toolbox-dev-1.2.7 → kevin-toolbox-dev-1.3.0}/kevin_toolbox/patches/for_os/pack.py +0 -0
- {kevin-toolbox-dev-1.2.7 → kevin-toolbox-dev-1.3.0}/kevin_toolbox/patches/for_os/unpack.py +0 -0
- {kevin-toolbox-dev-1.2.7 → kevin-toolbox-dev-1.3.0}/kevin_toolbox/patches/for_test/__init__.py +0 -0
- {kevin-toolbox-dev-1.2.7 → kevin-toolbox-dev-1.3.0}/kevin_toolbox/patches/for_test/check_consistency.py +0 -0
- {kevin-toolbox-dev-1.2.7/kevin_toolbox/patches/for_numpy → kevin-toolbox-dev-1.3.0/kevin_toolbox/patches/for_torch}/__init__.py +0 -0
- {kevin-toolbox-dev-1.2.7 → kevin-toolbox-dev-1.3.0}/kevin_toolbox/patches/for_torch/compatible/__init__.py +0 -0
- {kevin-toolbox-dev-1.2.7 → kevin-toolbox-dev-1.3.0}/kevin_toolbox/patches/for_torch/compatible/concat.py +0 -0
- {kevin-toolbox-dev-1.2.7 → kevin-toolbox-dev-1.3.0}/kevin_toolbox/patches/for_torch/compatible/linalg/__init__.py +0 -0
- {kevin-toolbox-dev-1.2.7 → kevin-toolbox-dev-1.3.0}/kevin_toolbox/patches/for_torch/compatible/linalg/norm.py +0 -0
- {kevin-toolbox-dev-1.2.7 → kevin-toolbox-dev-1.3.0}/kevin_toolbox/patches/for_torch/compatible/linalg/svd.py +0 -0
- {kevin-toolbox-dev-1.2.7 → kevin-toolbox-dev-1.3.0}/kevin_toolbox/patches/for_torch/compatible/nn/__init__.py +0 -0
- {kevin-toolbox-dev-1.2.7 → kevin-toolbox-dev-1.3.0}/kevin_toolbox/patches/for_torch/compatible/nn/sequential.py +0 -0
- {kevin-toolbox-dev-1.2.7 → kevin-toolbox-dev-1.3.0}/kevin_toolbox/patches/for_torch/compatible/tile.py +0 -0
- {kevin-toolbox-dev-1.2.7 → kevin-toolbox-dev-1.3.0}/kevin_toolbox/patches/for_torch/compatible/where.py +0 -0
- {kevin-toolbox-dev-1.2.7 → kevin-toolbox-dev-1.3.0}/kevin_toolbox/patches/for_torch/math/__init__.py +0 -0
- {kevin-toolbox-dev-1.2.7 → kevin-toolbox-dev-1.3.0}/kevin_toolbox/patches/for_torch/math/get_y_at_x.py +0 -0
- {kevin-toolbox-dev-1.2.7 → kevin-toolbox-dev-1.3.0}/kevin_toolbox/patches/for_torch/math/my_around.py +0 -0
- {kevin-toolbox-dev-1.2.7 → kevin-toolbox-dev-1.3.0}/kevin_toolbox/patches/for_torch/nn/__init__.py +0 -0
- {kevin-toolbox-dev-1.2.7 → kevin-toolbox-dev-1.3.0}/kevin_toolbox/patches/for_torch/nn/lambda_layer.py +0 -0
- {kevin-toolbox-dev-1.2.7 → kevin-toolbox-dev-1.3.0}/kevin_toolbox_dev.egg-info/dependency_links.txt +0 -0
- {kevin-toolbox-dev-1.2.7 → kevin-toolbox-dev-1.3.0}/kevin_toolbox_dev.egg-info/requires.txt +0 -0
- {kevin-toolbox-dev-1.2.7 → kevin-toolbox-dev-1.3.0}/kevin_toolbox_dev.egg-info/top_level.txt +0 -0
- {kevin-toolbox-dev-1.2.7 → kevin-toolbox-dev-1.3.0}/pyproject.toml +0 -0
- {kevin-toolbox-dev-1.2.7 → kevin-toolbox-dev-1.3.0}/setup.cfg +0 -0
- {kevin-toolbox-dev-1.2.7 → kevin-toolbox-dev-1.3.0}/setup.py +0 -0
@@ -0,0 +1,68 @@
|
|
1
|
+
Metadata-Version: 2.1
|
2
|
+
Name: kevin-toolbox-dev
|
3
|
+
Version: 1.3.0
|
4
|
+
Summary: 一个常用的工具代码包集合
|
5
|
+
Home-page: https://github.com/cantbeblank96/kevin_toolbox
|
6
|
+
Download-URL: https://github.com/username/your-package/archive/refs/tags/v1.0.0.tar.gz
|
7
|
+
Author: kevin hsu
|
8
|
+
Author-email: xukaiming1996@163.com
|
9
|
+
License: MIT
|
10
|
+
Keywords: mathematics,pytorch,numpy,machine-learning,algorithm
|
11
|
+
Classifier: License :: OSI Approved :: MIT License
|
12
|
+
Classifier: Programming Language :: Python
|
13
|
+
Classifier: Programming Language :: Python :: 3
|
14
|
+
Requires-Python: >=3.6
|
15
|
+
Description-Content-Type: text/markdown
|
16
|
+
Provides-Extra: plot
|
17
|
+
Provides-Extra: rest
|
18
|
+
|
19
|
+
# kevin_toolbox
|
20
|
+
|
21
|
+
一个通用的工具代码包集合
|
22
|
+
|
23
|
+
|
24
|
+
|
25
|
+
环境要求
|
26
|
+
|
27
|
+
```shell
|
28
|
+
numpy>=1.19
|
29
|
+
pytorch>=1.2
|
30
|
+
```
|
31
|
+
|
32
|
+
安装方法:
|
33
|
+
|
34
|
+
```shell
|
35
|
+
pip install kevin-toolbox --no-dependencies
|
36
|
+
```
|
37
|
+
|
38
|
+
|
39
|
+
|
40
|
+
[项目地址 Repo](https://github.com/cantbeblank96/kevin_toolbox)
|
41
|
+
|
42
|
+
[使用指南 User_Guide](./notes/User_Guide.md)
|
43
|
+
|
44
|
+
[免责声明 Disclaimer](./notes/Disclaimer.md)
|
45
|
+
|
46
|
+
[版本更新记录](./notes/Release_Record.md):
|
47
|
+
|
48
|
+
- v 1.3.0 (2023-12-13)【bug fix】【new feature】【incompatible change】
|
49
|
+
- nested_dict_list
|
50
|
+
- serializer
|
51
|
+
- 【bug fix】fix bug in read() and write(),解除这两个函数中出现的 nested_dict_list 和 kevin_toolbox.computer_science.algorithm.registration.Registry 模块之间的交叉引用。
|
52
|
+
- 【bug fix】fix bug in set_value(),对于使用method=@,但是node不为正整数的name进行强制写入的情况,未修复前表现为错误地尝试使用list进行构建并报错,现修复为使用 dict 进行构建。在新的策略下,对于强制写入,只有 method=@ 且 node 为非负正整数的情况下才会使用 list 进行构建,其他一律用 dict。
|
53
|
+
- 添加了对应的测试用例。
|
54
|
+
- patches.for_os
|
55
|
+
- 【new feature】add walk(),该方法在 os.walk() 的基础上增加了 ignore_s 参数,用于设定规则排除特定的目录和文件。相较于先使用 os.walk() 递归遍历这个目录,再对内容进行逐个过滤筛选的这种方式,本方法在遍历过程中就可以使用规则进行过滤并决定是否要继续深入遍历,更加高效。
|
56
|
+
- 补充了对应的测试用例。
|
57
|
+
- 【new feature】add Path_Ignorer,该类用于解释 ignore_s 参数,并进行基于规则的判断。
|
58
|
+
- 【new feature】modify remove(),支持对软连接的删除。
|
59
|
+
- computer_science.algorithm.registration
|
60
|
+
- 【new feature】【incompatible change】modify Registry.collect_from_paths(),将原有的通过目录前缀匹配来排除目录的 path_ls_to_exclude 参数,替换成通过规则匹配待排除目录的 ignore_s 参数,更加自由灵活。ignore_s 参数的设定方式与 for_os.walk() 中的 ignore_s 参数相同。
|
61
|
+
- 添加了对应的测试用例。
|
62
|
+
- patches.for_optuna
|
63
|
+
- 【new feature】【incompatible change】modify sample_from_feasible_domain(),进行了以下改变:
|
64
|
+
- 允许在 <feasible_domain> 中通过 "p_name" 字段来强制指定该参数在 trial 中的注册名称。
|
65
|
+
- 支持通过 f_p_name_builder 和 b_use_name_as_idx 决定如何从 <feasible_domain> 的位置生成参数的注册名称。
|
66
|
+
- 删去了 pre_name 参数,如果要实现原 pre_name 的效果,可以等效使用:
|
67
|
+
- `f_p_name_builder =lambda idx, p_type: f'{pre_name}{idx}'`
|
68
|
+
- 原来返回 var, node_name_ls 改为返回 var, node_vs_paras_s,其中 node_vs_paras_s 是一个`<dict>`,以被采样的节点在 var 中位置的名称作为键,以对应节点在 trial 中注册的参数名为值。
|
@@ -0,0 +1,50 @@
|
|
1
|
+
# kevin_toolbox
|
2
|
+
|
3
|
+
一个通用的工具代码包集合
|
4
|
+
|
5
|
+
|
6
|
+
|
7
|
+
环境要求
|
8
|
+
|
9
|
+
```shell
|
10
|
+
numpy>=1.19
|
11
|
+
pytorch>=1.2
|
12
|
+
```
|
13
|
+
|
14
|
+
安装方法:
|
15
|
+
|
16
|
+
```shell
|
17
|
+
pip install kevin-toolbox --no-dependencies
|
18
|
+
```
|
19
|
+
|
20
|
+
|
21
|
+
|
22
|
+
[项目地址 Repo](https://github.com/cantbeblank96/kevin_toolbox)
|
23
|
+
|
24
|
+
[使用指南 User_Guide](./notes/User_Guide.md)
|
25
|
+
|
26
|
+
[免责声明 Disclaimer](./notes/Disclaimer.md)
|
27
|
+
|
28
|
+
[版本更新记录](./notes/Release_Record.md):
|
29
|
+
|
30
|
+
- v 1.3.0 (2023-12-13)【bug fix】【new feature】【incompatible change】
|
31
|
+
- nested_dict_list
|
32
|
+
- serializer
|
33
|
+
- 【bug fix】fix bug in read() and write(),解除这两个函数中出现的 nested_dict_list 和 kevin_toolbox.computer_science.algorithm.registration.Registry 模块之间的交叉引用。
|
34
|
+
- 【bug fix】fix bug in set_value(),对于使用method=@,但是node不为正整数的name进行强制写入的情况,未修复前表现为错误地尝试使用list进行构建并报错,现修复为使用 dict 进行构建。在新的策略下,对于强制写入,只有 method=@ 且 node 为非负正整数的情况下才会使用 list 进行构建,其他一律用 dict。
|
35
|
+
- 添加了对应的测试用例。
|
36
|
+
- patches.for_os
|
37
|
+
- 【new feature】add walk(),该方法在 os.walk() 的基础上增加了 ignore_s 参数,用于设定规则排除特定的目录和文件。相较于先使用 os.walk() 递归遍历这个目录,再对内容进行逐个过滤筛选的这种方式,本方法在遍历过程中就可以使用规则进行过滤并决定是否要继续深入遍历,更加高效。
|
38
|
+
- 补充了对应的测试用例。
|
39
|
+
- 【new feature】add Path_Ignorer,该类用于解释 ignore_s 参数,并进行基于规则的判断。
|
40
|
+
- 【new feature】modify remove(),支持对软连接的删除。
|
41
|
+
- computer_science.algorithm.registration
|
42
|
+
- 【new feature】【incompatible change】modify Registry.collect_from_paths(),将原有的通过目录前缀匹配来排除目录的 path_ls_to_exclude 参数,替换成通过规则匹配待排除目录的 ignore_s 参数,更加自由灵活。ignore_s 参数的设定方式与 for_os.walk() 中的 ignore_s 参数相同。
|
43
|
+
- 添加了对应的测试用例。
|
44
|
+
- patches.for_optuna
|
45
|
+
- 【new feature】【incompatible change】modify sample_from_feasible_domain(),进行了以下改变:
|
46
|
+
- 允许在 <feasible_domain> 中通过 "p_name" 字段来强制指定该参数在 trial 中的注册名称。
|
47
|
+
- 支持通过 f_p_name_builder 和 b_use_name_as_idx 决定如何从 <feasible_domain> 的位置生成参数的注册名称。
|
48
|
+
- 删去了 pre_name 参数,如果要实现原 pre_name 的效果,可以等效使用:
|
49
|
+
- `f_p_name_builder =lambda idx, p_type: f'{pre_name}{idx}'`
|
50
|
+
- 原来返回 var, node_name_ls 改为返回 var, node_vs_paras_s,其中 node_vs_paras_s 是一个`<dict>`,以被采样的节点在 var 中位置的名称作为键,以对应节点在 trial 中注册的参数名为值。
|
@@ -1,4 +1,4 @@
|
|
1
|
-
__version__ = "1.
|
1
|
+
__version__ = "1.3.0"
|
2
2
|
|
3
3
|
|
4
4
|
import os
|
@@ -12,5 +12,5 @@ os.system(
|
|
12
12
|
os.system(
|
13
13
|
f'python {os.path.split(__file__)[0]}/env_info/check_validity_and_uninstall.py '
|
14
14
|
f'--package_name kevin-toolbox-dev '
|
15
|
-
f'--expiration_timestamp
|
15
|
+
f'--expiration_timestamp 1718018144 --verbose 0'
|
16
16
|
)
|
@@ -4,6 +4,8 @@ import inspect
|
|
4
4
|
import pkgutil
|
5
5
|
import weakref
|
6
6
|
import kevin_toolbox.nested_dict_list as ndl
|
7
|
+
from kevin_toolbox.patches import for_os
|
8
|
+
from kevin_toolbox.patches.for_os import Path_Ignorer, Ignore_Scope
|
7
9
|
|
8
10
|
|
9
11
|
class Registry:
|
@@ -218,14 +220,22 @@ class Registry:
|
|
218
220
|
|
219
221
|
# -------------------- 通过路径添加 --------------------- #
|
220
222
|
|
221
|
-
def collect_from_paths(self, path_ls=None,
|
223
|
+
def collect_from_paths(self, path_ls=None, ignore_s=None, b_execute_now=False):
|
222
224
|
"""
|
223
225
|
遍历 path_ls 下的所有模块,并自动导入其中主要被注册的部分
|
224
226
|
比如被 register() 装饰器包裹或者通过 add() 添加的部分
|
225
227
|
|
226
228
|
参数:
|
227
229
|
path_ls: <list of paths> 需要搜索的目录
|
228
|
-
|
230
|
+
ignore_s: <list/tuple of dict> 在搜索遍历目录时候要执行的排除规则
|
231
|
+
具体设置方式参考 patches.for_os.walk() 中的 ignore_s 参数。
|
232
|
+
比如使用下面的规则就可以排除待搜索目录下的所有 temp/ 和 test/ 文件夹:
|
233
|
+
[
|
234
|
+
{
|
235
|
+
"func": lambda _, __, path: os.path.basename(path) in ["temp", "test"],
|
236
|
+
"scope": ["root", "dirs"]
|
237
|
+
},
|
238
|
+
]
|
229
239
|
b_execute_now: <boolean> 现在就执行导入
|
230
240
|
默认为 False,将等到第一次执行 get() 函数时才会真正尝试导入
|
231
241
|
|
@@ -243,10 +253,13 @@ class Registry:
|
|
243
253
|
f'calling Registry.collect_from_paths() in __init__.py is forbidden, file: {caller_frame.filename}.\n' \
|
244
254
|
f'you can call it in other files, and then import the result of the call in __init__.py'
|
245
255
|
|
256
|
+
# 根据 ignore_s 构建 Path_Ignorer
|
257
|
+
path_ignorer = ignore_s if isinstance(ignore_s, (Path_Ignorer,)) else Path_Ignorer(ignore_s=ignore_s)
|
258
|
+
|
246
259
|
#
|
247
260
|
if not b_execute_now:
|
248
261
|
self._path_to_collect.append(
|
249
|
-
dict(path_ls=path_ls,
|
262
|
+
dict(path_ls=path_ls, ignore_s=path_ignorer, b_execute_now=True))
|
250
263
|
return
|
251
264
|
|
252
265
|
#
|
@@ -254,27 +267,38 @@ class Registry:
|
|
254
267
|
temp = []
|
255
268
|
for path in filter(lambda x: os.path.isdir(x), path_ls):
|
256
269
|
temp.append(path)
|
257
|
-
for root, dirs, _ in
|
270
|
+
for root, dirs, _ in for_os.walk(path, topdown=False, ignore_s=path_ignorer, followlinks=True):
|
258
271
|
temp.extend([os.path.join(root, i) for i in dirs])
|
259
|
-
if path_ls_to_exclude is not None:
|
260
|
-
for path_ex in path_ls_to_exclude:
|
261
|
-
if not os.path.exists(path_ex):
|
262
|
-
continue
|
263
|
-
for i in reversed(range(len(temp))):
|
264
|
-
if os.path.samefile(os.path.commonpath([path_ex, temp[i]]), path_ex):
|
265
|
-
temp.pop(i)
|
266
272
|
# 从深到浅导入,可以避免继承引起的 TypeError: super(type, obj) 类型错误
|
267
273
|
path_ls = list(set(temp))
|
268
274
|
path_ls.sort(reverse=True)
|
275
|
+
path_set = set(path_ls)
|
269
276
|
|
270
277
|
temp = None
|
271
278
|
for loader, module_name, is_pkg in pkgutil.walk_packages(path_ls):
|
279
|
+
# 判断该模块是否需要导入
|
280
|
+
# (快速判断)判断该模块所在目录是否在 path_set 中
|
281
|
+
if loader.path not in path_set:
|
282
|
+
continue
|
283
|
+
if is_pkg:
|
284
|
+
# 若不是 package,判断是否满足 Path_Ignorer 中的 dirs 对应的规则
|
285
|
+
path = os.path.dirname(loader.find_module(module_name).path)
|
286
|
+
if path_ignorer(Ignore_Scope.DIRS, True, os.path.islink(path), path):
|
287
|
+
continue
|
288
|
+
else:
|
289
|
+
# 若该模块是 package,判断该模块的文件路径是否满足 Path_Ignorer 中的 files 对应的规则
|
290
|
+
path = loader.find_module(module_name).path
|
291
|
+
if path_ignorer(Ignore_Scope.FILES, False, os.path.islink(path), path):
|
292
|
+
continue
|
293
|
+
# 加载模块
|
272
294
|
module = loader.find_module(module_name).load_module(module_name)
|
295
|
+
# 选择遍历过程中第一次找到的 Registry 实例
|
273
296
|
if temp is None:
|
274
297
|
for name, obj in inspect.getmembers(module):
|
275
298
|
if getattr(obj, "name", None) == Registry.name and getattr(obj, "uid", None) == self.uid:
|
276
299
|
temp = obj
|
277
300
|
break
|
301
|
+
|
278
302
|
if temp is not None:
|
279
303
|
self.database = temp.database
|
280
304
|
|
kevin-toolbox-dev-1.3.0/kevin_toolbox/computer_science/algorithm/statistician/accumulator_base.py
ADDED
@@ -0,0 +1,146 @@
|
|
1
|
+
from kevin_toolbox.computer_science.algorithm.statistician import init_var
|
2
|
+
import kevin_toolbox.nested_dict_list as ndl
|
3
|
+
|
4
|
+
|
5
|
+
class Accumulator_Base(object):
|
6
|
+
"""
|
7
|
+
累积型统计器的抽象基类
|
8
|
+
|
9
|
+
包含以下变量:
|
10
|
+
self.var <torch.tensor / np.ndarray / int / float> 用于保存累积值
|
11
|
+
使用 statistician._init_var() 函数进行初始化。
|
12
|
+
有三种初始化累积值(指定输入数据的格式)方式:
|
13
|
+
1. (在初始化实例时)显式指定数据的形状和所在设备等。
|
14
|
+
data_format: <dict of paras>
|
15
|
+
其中需要包含以下参数:
|
16
|
+
type_: <str>
|
17
|
+
"numpy": np.ndarray
|
18
|
+
"torch": torch.tensor
|
19
|
+
shape: <list of integers>
|
20
|
+
device: <torch.device>
|
21
|
+
dtype: <torch.dtype>
|
22
|
+
2. (在初始化实例时)根据输入的数据,来推断出形状、设备等。
|
23
|
+
like: <torch.tensor / np.ndarray / int / float>
|
24
|
+
3. 不在初始化实例时指定 data_format 和 like,此时将等到第一次调用 add()/add_sequence()
|
25
|
+
时再根据输入来自动推断。
|
26
|
+
要实现该方式,需要在 add() 中添加:
|
27
|
+
if self.var is None:
|
28
|
+
self.var = self._init_var(like=var)
|
29
|
+
以上三种方式,默认选用最后一种。
|
30
|
+
如果三种方式同时被指定,则优先级与对应方式在上面的排名相同。
|
31
|
+
self.state <dict> 用于保存状态的字典
|
32
|
+
其中包含以下字段:
|
33
|
+
"total_nums": <int> 用于统计一共调用了多少次 self.add() 方法去进行累积
|
34
|
+
self.paras <dict> 用于保存构建实例时的各个参数
|
35
|
+
|
36
|
+
包含以下接口:
|
37
|
+
add() (*)添加单个数据
|
38
|
+
add_sequence() (*)添加一系列数据
|
39
|
+
get() (*)获取累积值
|
40
|
+
clear() 情况已有数据(self.var)和状态(self.state)
|
41
|
+
state_dict() 返回当前实例的状态(返回一个包含 self.var 和 self.state 的字典)
|
42
|
+
load_state_dict() 通过接受 state_dict 来更新当前实例的状态
|
43
|
+
|
44
|
+
有可能需要另外实现or覆写的函数:
|
45
|
+
上面带有 (*)的接口
|
46
|
+
_init_state() 方法
|
47
|
+
_init_var() 方法
|
48
|
+
"""
|
49
|
+
|
50
|
+
def __init__(self, **kwargs):
|
51
|
+
"""
|
52
|
+
至少包含以下参数:
|
53
|
+
data_format: 指定数据格式(对应方式1)
|
54
|
+
like: 指定数据格式(对应方式2)
|
55
|
+
"""
|
56
|
+
# 默认参数
|
57
|
+
paras = {
|
58
|
+
# 指定输入数据的形状、设备
|
59
|
+
"data_format": None,
|
60
|
+
"like": None,
|
61
|
+
}
|
62
|
+
|
63
|
+
# 获取参数
|
64
|
+
paras.update(kwargs)
|
65
|
+
|
66
|
+
# 校验参数
|
67
|
+
#
|
68
|
+
self.paras = paras
|
69
|
+
self.var = self._init_var(like=paras["like"], data_format=paras["data_format"])
|
70
|
+
self.state = self._init_state()
|
71
|
+
|
72
|
+
def add_sequence(self, var_ls, **kwargs):
|
73
|
+
# for var in var_ls:
|
74
|
+
# self.add(var)
|
75
|
+
raise NotImplementedError
|
76
|
+
|
77
|
+
def add(self, var, **kwargs):
|
78
|
+
"""
|
79
|
+
添加单个数据
|
80
|
+
|
81
|
+
参数:
|
82
|
+
var: 数据
|
83
|
+
"""
|
84
|
+
# if self.var is None:
|
85
|
+
# self.var = self._init_var(like=var)
|
86
|
+
# # 累积
|
87
|
+
# self.state["total_nums"] += 1
|
88
|
+
# # 对 self.var 做处理(需要具体实现)
|
89
|
+
raise NotImplementedError
|
90
|
+
|
91
|
+
def get(self, **kwargs):
|
92
|
+
"""
|
93
|
+
获取当前累加的平均值
|
94
|
+
当未有累积时,返回 None
|
95
|
+
"""
|
96
|
+
# if len(self) == 0:
|
97
|
+
# return None
|
98
|
+
# # 对 self.var 做处理并返回(需要具体实现)
|
99
|
+
raise NotImplementedError
|
100
|
+
|
101
|
+
@staticmethod
|
102
|
+
def _init_state():
|
103
|
+
"""
|
104
|
+
初始化状态
|
105
|
+
"""
|
106
|
+
return dict(
|
107
|
+
total_nums=0,
|
108
|
+
)
|
109
|
+
|
110
|
+
@staticmethod
|
111
|
+
def _init_var(like=None, data_format=None):
|
112
|
+
if like is not None:
|
113
|
+
var = init_var.by_like(var=like)
|
114
|
+
elif data_format is not None:
|
115
|
+
var = init_var.by_data_format(**kwargs)
|
116
|
+
else:
|
117
|
+
var = None
|
118
|
+
return var
|
119
|
+
|
120
|
+
def clear(self):
|
121
|
+
self.var = self._init_var(like=self.var)
|
122
|
+
self.state = self._init_state()
|
123
|
+
|
124
|
+
def __len__(self):
|
125
|
+
return self.state["total_nums"]
|
126
|
+
|
127
|
+
# ---------------------- 用于保存和加载状态 ---------------------- #
|
128
|
+
|
129
|
+
def load_state_dict(self, state_dict):
|
130
|
+
"""
|
131
|
+
加载状态
|
132
|
+
"""
|
133
|
+
self.clear()
|
134
|
+
self.state.update(state_dict.get("state", dict()))
|
135
|
+
if state_dict.get("var", None) is not None:
|
136
|
+
if self.var is None:
|
137
|
+
self.var = state_dict["var"]
|
138
|
+
else:
|
139
|
+
self.var *= 0
|
140
|
+
self.var += state_dict["var"]
|
141
|
+
|
142
|
+
def state_dict(self):
|
143
|
+
"""
|
144
|
+
获取状态
|
145
|
+
"""
|
146
|
+
return ndl.copy_(var={"state": self.state, "var": self.var}, b_deepcopy=True, b_keep_internal_references=True)
|
@@ -1,10 +1,7 @@
|
|
1
|
-
import
|
2
|
-
import torch
|
3
|
-
import numpy as np
|
4
|
-
from kevin_toolbox.computer_science.algorithm.statistician._init_var import _init_var
|
1
|
+
from kevin_toolbox.computer_science.algorithm.statistician import Accumulator_Base
|
5
2
|
|
6
3
|
|
7
|
-
class Average_Accumulator:
|
4
|
+
class Average_Accumulator(Accumulator_Base):
|
8
5
|
"""
|
9
6
|
用于计算平均值的累积器
|
10
7
|
"""
|
@@ -30,30 +27,13 @@ class Average_Accumulator:
|
|
30
27
|
以上三种方式,默认选用最后一种。
|
31
28
|
如果三种方式同时被指定,则优先级与对应方式在上面的排名相同。
|
32
29
|
"""
|
30
|
+
super(Average_Accumulator, self).__init__(**kwargs)
|
33
31
|
|
34
|
-
|
35
|
-
paras = {
|
36
|
-
# 指定输入数据的形状、设备
|
37
|
-
"data_format": None,
|
38
|
-
"like": None,
|
39
|
-
}
|
40
|
-
|
41
|
-
# 获取参数
|
42
|
-
paras.update(kwargs)
|
43
|
-
|
44
|
-
# 校验参数
|
45
|
-
#
|
46
|
-
self.paras = paras
|
47
|
-
self.var = _init_var(like=paras["like"], data_format=paras["data_format"])
|
48
|
-
self.state = dict(
|
49
|
-
total_nums=0,
|
50
|
-
)
|
51
|
-
|
52
|
-
def add_sequence(self, var_ls):
|
32
|
+
def add_sequence(self, var_ls, **kwargs):
|
53
33
|
for var in var_ls:
|
54
34
|
self.add(var)
|
55
35
|
|
56
|
-
def add(self, var):
|
36
|
+
def add(self, var, **kwargs):
|
57
37
|
"""
|
58
38
|
添加单个数据
|
59
39
|
|
@@ -61,12 +41,12 @@ class Average_Accumulator:
|
|
61
41
|
var: 数据
|
62
42
|
"""
|
63
43
|
if self.var is None:
|
64
|
-
self.var = _init_var(like=var)
|
44
|
+
self.var = self._init_var(like=var)
|
65
45
|
# 累积
|
66
46
|
self.var += var
|
67
47
|
self.state["total_nums"] += 1
|
68
48
|
|
69
|
-
def get(self):
|
49
|
+
def get(self, **kwargs):
|
70
50
|
"""
|
71
51
|
获取当前累加的平均值
|
72
52
|
当未有累积时,返回 None
|
@@ -75,17 +55,10 @@ class Average_Accumulator:
|
|
75
55
|
return None
|
76
56
|
return self.var / len(self)
|
77
57
|
|
78
|
-
def clear(self):
|
79
|
-
self.var = _init_var(like=self.var)
|
80
|
-
self.state = dict(
|
81
|
-
total_nums=0,
|
82
|
-
)
|
83
|
-
|
84
|
-
def __len__(self):
|
85
|
-
return self.state["total_nums"]
|
86
|
-
|
87
58
|
|
88
59
|
if __name__ == '__main__':
|
60
|
+
import torch
|
61
|
+
|
89
62
|
seq = list(torch.tensor(range(1, 10)))
|
90
63
|
avg = Average_Accumulator()
|
91
64
|
for i, v in enumerate(seq):
|
@@ -1,10 +1,7 @@
|
|
1
|
-
import
|
2
|
-
import torch
|
3
|
-
import numpy as np
|
4
|
-
from kevin_toolbox.computer_science.algorithm.statistician._init_var import _init_var
|
1
|
+
from kevin_toolbox.computer_science.algorithm.statistician import Accumulator_Base
|
5
2
|
|
6
3
|
|
7
|
-
class Exponential_Moving_Average:
|
4
|
+
class Exponential_Moving_Average(Accumulator_Base):
|
8
5
|
"""
|
9
6
|
滑动平均器
|
10
7
|
支持为每个输入数据配置不同的权重
|
@@ -59,12 +56,7 @@ class Exponential_Moving_Average:
|
|
59
56
|
# 校验参数
|
60
57
|
assert isinstance(paras["keep_ratio"], (int, float,)) and 0 <= paras["keep_ratio"] <= 1
|
61
58
|
#
|
62
|
-
self.paras
|
63
|
-
self.var = _init_var(like=paras["like"], data_format=paras["data_format"])
|
64
|
-
self.state = dict(
|
65
|
-
total_nums=0,
|
66
|
-
bias_fix=1,
|
67
|
-
)
|
59
|
+
super(Exponential_Moving_Average, self).__init__(**paras)
|
68
60
|
|
69
61
|
def add_sequence(self, var_ls, weight_ls=None):
|
70
62
|
if weight_ls is not None:
|
@@ -87,7 +79,7 @@ class Exponential_Moving_Average:
|
|
87
79
|
默认为 1
|
88
80
|
"""
|
89
81
|
if self.var is None:
|
90
|
-
self.var = _init_var(like=var)
|
82
|
+
self.var = self._init_var(like=var)
|
91
83
|
new_ratio = (1 - self.paras["keep_ratio"]) * weight
|
92
84
|
keep_ratio = (1 - new_ratio)
|
93
85
|
# 累积
|
@@ -113,18 +105,18 @@ class Exponential_Moving_Average:
|
|
113
105
|
else:
|
114
106
|
return self.var
|
115
107
|
|
116
|
-
|
117
|
-
|
118
|
-
|
108
|
+
@staticmethod
|
109
|
+
def _init_state():
|
110
|
+
return dict(
|
119
111
|
total_nums=0,
|
120
112
|
bias_fix=1,
|
121
113
|
)
|
122
114
|
|
123
|
-
def __len__(self):
|
124
|
-
return self.state["total_nums"]
|
125
|
-
|
126
115
|
|
127
116
|
if __name__ == '__main__':
|
117
|
+
import torch
|
118
|
+
import numpy as np
|
119
|
+
|
128
120
|
seq = list(torch.tensor(range(1, 10)))
|
129
121
|
wls = np.asarray([0.1] * 5 + [0.9] + [0.1] * 4) * 0.1
|
130
122
|
ema = Exponential_Moving_Average(keep_ratio=0.9, bias_correction=True)
|
@@ -0,0 +1,24 @@
|
|
1
|
+
import torch
|
2
|
+
import numpy as np
|
3
|
+
|
4
|
+
|
5
|
+
def init_by_data_format(type_, shape, **kwargs):
|
6
|
+
"""
|
7
|
+
构建一个与输入 var 具有相同类型、形状、设备的 0 数组
|
8
|
+
|
9
|
+
参数:
|
10
|
+
type_: <str>
|
11
|
+
"numpy": np.ndarray
|
12
|
+
"torch": torch.tensor
|
13
|
+
"number": float
|
14
|
+
shape: <list of integers>
|
15
|
+
device: <torch.device>
|
16
|
+
dtype: <torch.dtype / np.dtype>
|
17
|
+
"""
|
18
|
+
if type_ == "torch":
|
19
|
+
res = torch.zeros(size=shape, **kwargs)
|
20
|
+
elif type_ == "numpy":
|
21
|
+
res = np.zeros(shape=shape, **kwargs)
|
22
|
+
else:
|
23
|
+
res = 0.0
|
24
|
+
return res
|
@@ -0,0 +1,20 @@
|
|
1
|
+
import torch
|
2
|
+
import numpy as np
|
3
|
+
|
4
|
+
|
5
|
+
def init_by_like(var):
|
6
|
+
"""
|
7
|
+
构建一个与输入 var 具有相同类型、形状、设备的 0 数组
|
8
|
+
|
9
|
+
参数:
|
10
|
+
var: <torch.tensor / np.ndarray / int / float>
|
11
|
+
"""
|
12
|
+
if torch.is_tensor(var):
|
13
|
+
res = torch.zeros_like(var)
|
14
|
+
elif isinstance(var, (np.ndarray,)):
|
15
|
+
res = np.zeros_like(var)
|
16
|
+
elif isinstance(var, (int, float, np.number,)):
|
17
|
+
res = 0.0
|
18
|
+
else:
|
19
|
+
raise ValueError("paras 'like' should be np.ndarray, torch.tensor or int/float")
|
20
|
+
return res
|
{kevin-toolbox-dev-1.2.7 → kevin-toolbox-dev-1.3.0}/kevin_toolbox/data_flow/file/json_/read_json.py
RENAMED
@@ -19,7 +19,7 @@ def read_json(file_path, converters=None, b_use_suggested_converter=False):
|
|
19
19
|
默认为 False。
|
20
20
|
注意:当 converters 非 None,此参数失效,以 converters 中的具体设置为准
|
21
21
|
"""
|
22
|
-
assert os.path.isfile(file_path)
|
22
|
+
assert os.path.isfile(file_path), f'file {file_path} not found'
|
23
23
|
if converters is None and b_use_suggested_converter:
|
24
24
|
converters = [unescape_tuple, unescape_non_str_dict_key]
|
25
25
|
|