mindspore 2.4.10__cp310-cp310-win_amd64.whl → 2.6.0__cp310-cp310-win_amd64.whl
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.
Potentially problematic release.
This version of mindspore might be problematic. Click here for more details.
- mindspore/.commit_id +1 -1
- mindspore/Microsoft.VisualStudio.Telemetry.dll +0 -0
- mindspore/Newtonsoft.Json.dll +0 -0
- mindspore/__init__.py +13 -6
- mindspore/_c_dataengine.cp310-win_amd64.pyd +0 -0
- mindspore/_c_expression.cp310-win_amd64.pyd +0 -0
- mindspore/_c_mindrecord.cp310-win_amd64.pyd +0 -0
- mindspore/_check_jit_forbidden_api.py +3 -0
- mindspore/_checkparam.py +3 -38
- mindspore/_deprecated/__init__.py +17 -0
- mindspore/_deprecated/jit.py +198 -0
- mindspore/_extends/builtin_operations.py +1 -1
- mindspore/_extends/parallel_compile/akg_compiler/gen_custom_op_files.py +1 -1
- mindspore/_extends/parse/__init__.py +6 -7
- mindspore/_extends/parse/compile_config.py +83 -0
- mindspore/_extends/parse/deprecated/__init__.py +0 -0
- mindspore/_extends/parse/deprecated/deprecated_tensor_method.py +394 -0
- mindspore/_extends/parse/jit_fallback_modules/__init__.py +0 -0
- mindspore/_extends/parse/jit_fallback_modules/check_utils.py +123 -0
- mindspore/_extends/parse/jit_fallback_modules/third_party_modules.py +50 -0
- mindspore/_extends/parse/parser.py +47 -198
- mindspore/_extends/parse/resources.py +1 -5
- mindspore/_extends/parse/standard_method.py +229 -99
- mindspore/_extends/pijit/__init__.py +2 -2
- mindspore/_extends/pijit/pijit_func_white_list.py +17 -12
- mindspore/_extends/pijit/tensor_func_list.py +27 -0
- mindspore/_extends/utils.py +1 -1
- mindspore/amp.py +11 -5
- mindspore/atlprov.dll +0 -0
- mindspore/avcodec-59.dll +0 -0
- mindspore/avdevice-59.dll +0 -0
- mindspore/avfilter-8.dll +0 -0
- mindspore/avformat-59.dll +0 -0
- mindspore/avutil-57.dll +0 -0
- mindspore/boost/__init__.py +2 -2
- mindspore/boost/base.py +3 -7
- mindspore/boost/boost_cell_wrapper.py +138 -43
- mindspore/c1.dll +0 -0
- mindspore/c1xx.dll +0 -0
- mindspore/c2.dll +0 -0
- mindspore/common/__init__.py +6 -3
- mindspore/common/_grad_function.py +56 -0
- mindspore/common/_pijit_context.py +14 -5
- mindspore/common/_register_for_tensor.py +1 -2
- mindspore/common/_stub_tensor.py +30 -14
- mindspore/common/_tensor_cpp_method.py +17 -0
- mindspore/common/_tensor_docs.py +4760 -0
- mindspore/common/api.py +480 -372
- mindspore/common/auto_dynamic_shape.py +41 -44
- mindspore/common/dtype.py +39 -36
- mindspore/common/dump.py +9 -6
- mindspore/common/file_system.py +9 -1
- mindspore/common/generator.py +5 -0
- mindspore/common/hook_handle.py +6 -2
- mindspore/common/initializer.py +13 -10
- mindspore/common/jit_begin_end.py +94 -0
- mindspore/common/jit_config.py +6 -1
- mindspore/common/jit_context.py +76 -0
- mindspore/common/jit_trace.py +378 -0
- mindspore/common/lazy_inline.py +9 -3
- mindspore/common/mindir_util.py +10 -2
- mindspore/common/mutable.py +5 -4
- mindspore/common/parameter.py +135 -52
- mindspore/common/seed.py +2 -2
- mindspore/common/sparse_tensor.py +23 -17
- mindspore/common/tensor.py +975 -1981
- mindspore/communication/__init__.py +7 -5
- mindspore/communication/_comm_helper.py +52 -2
- mindspore/communication/comm_func.py +240 -181
- mindspore/communication/management.py +95 -26
- mindspore/context.py +324 -573
- mindspore/dataset/__init__.py +65 -37
- mindspore/dataset/audio/__init__.py +2 -8
- mindspore/dataset/audio/transforms.py +3 -17
- mindspore/dataset/callback/ds_callback.py +2 -1
- mindspore/dataset/core/config.py +87 -6
- mindspore/dataset/engine/cache_admin.py +3 -3
- mindspore/dataset/engine/cache_client.py +6 -5
- mindspore/dataset/engine/datasets.py +292 -267
- mindspore/dataset/engine/datasets_audio.py +22 -8
- mindspore/dataset/engine/datasets_standard_format.py +46 -27
- mindspore/dataset/engine/datasets_text.py +78 -48
- mindspore/dataset/engine/datasets_user_defined.py +183 -117
- mindspore/dataset/engine/datasets_vision.py +120 -44
- mindspore/dataset/engine/iterators.py +283 -63
- mindspore/dataset/engine/obs/obs_mindrecord_dataset.py +1 -1
- mindspore/dataset/engine/obs/util.py +8 -0
- mindspore/dataset/engine/queue.py +40 -0
- mindspore/dataset/engine/samplers.py +289 -43
- mindspore/dataset/engine/serializer_deserializer.py +3 -2
- mindspore/dataset/engine/validators.py +53 -11
- mindspore/dataset/text/__init__.py +7 -6
- mindspore/dataset/text/transforms.py +6 -5
- mindspore/dataset/text/utils.py +3 -3
- mindspore/dataset/transforms/__init__.py +0 -9
- mindspore/dataset/transforms/py_transforms_util.py +17 -0
- mindspore/dataset/transforms/transforms.py +31 -14
- mindspore/dataset/utils/browse_dataset.py +1 -1
- mindspore/dataset/vision/__init__.py +2 -9
- mindspore/dataset/vision/transforms.py +202 -158
- mindspore/dataset/vision/utils.py +7 -5
- mindspore/dataset/vision/validators.py +1 -2
- mindspore/device_context/__init__.py +21 -0
- mindspore/device_context/ascend/__init__.py +25 -0
- mindspore/device_context/ascend/device.py +72 -0
- mindspore/device_context/ascend/op_debug.py +153 -0
- mindspore/device_context/ascend/op_precision.py +193 -0
- mindspore/device_context/ascend/op_tuning.py +123 -0
- mindspore/{ops_generate/gen_constants.py → device_context/cpu/__init__.py} +6 -17
- mindspore/device_context/cpu/device.py +62 -0
- mindspore/device_context/cpu/op_tuning.py +43 -0
- mindspore/device_context/gpu/__init__.py +21 -0
- mindspore/device_context/gpu/device.py +70 -0
- mindspore/device_context/gpu/op_precision.py +67 -0
- mindspore/device_context/gpu/op_tuning.py +175 -0
- mindspore/device_manager.py +170 -0
- mindspore/dnnl.dll +0 -0
- mindspore/dpcmi.dll +0 -0
- mindspore/experimental/es/embedding_service.py +35 -27
- mindspore/experimental/llm_boost/__init__.py +1 -0
- mindspore/experimental/llm_boost/ascend_native/__init__.py +22 -0
- mindspore/experimental/llm_boost/ascend_native/llama_boost_ascend_native.py +209 -0
- mindspore/experimental/llm_boost/ascend_native/llm_boost.py +52 -0
- mindspore/experimental/llm_boost/atb/boost_base.py +2 -3
- mindspore/experimental/llm_boost/atb/llama_boost.py +6 -1
- mindspore/experimental/llm_boost/register.py +1 -0
- mindspore/experimental/map_parameter.py +4 -4
- mindspore/experimental/optim/adadelta.py +6 -6
- mindspore/experimental/optim/adagrad.py +4 -4
- mindspore/experimental/optim/adam.py +7 -0
- mindspore/experimental/optim/adamax.py +4 -4
- mindspore/experimental/optim/adamw.py +4 -0
- mindspore/experimental/optim/asgd.py +1 -1
- mindspore/experimental/optim/lr_scheduler.py +73 -46
- mindspore/experimental/optim/radam.py +34 -31
- mindspore/experimental/optim/rprop.py +1 -1
- mindspore/experimental/optim/sgd.py +1 -1
- mindspore/hal/contiguous_tensors_handle.py +6 -10
- mindspore/hal/device.py +55 -53
- mindspore/hal/event.py +52 -52
- mindspore/hal/memory.py +179 -120
- mindspore/hal/stream.py +150 -109
- mindspore/include/api/context.h +0 -1
- mindspore/include/dataset/constants.h +7 -4
- mindspore/include/dataset/execute.h +2 -2
- mindspore/jpeg62.dll +0 -0
- mindspore/log.py +50 -0
- mindspore/mindrecord/__init__.py +21 -8
- mindspore/mindrecord/config.py +17 -316
- mindspore/mindrecord/filereader.py +1 -9
- mindspore/mindrecord/filewriter.py +5 -15
- mindspore/mindrecord/mindpage.py +1 -9
- mindspore/mindspore_backend_common.dll +0 -0
- mindspore/mindspore_backend_manager.dll +0 -0
- mindspore/mindspore_common.dll +0 -0
- mindspore/mindspore_core.dll +0 -0
- mindspore/mindspore_dump.dll +0 -0
- mindspore/mindspore_frontend.dll +0 -0
- mindspore/mindspore_glog.dll +0 -0
- mindspore/mindspore_memory_pool.dll +0 -0
- mindspore/mindspore_ms_backend.dll +0 -0
- mindspore/mindspore_ops.dll +0 -0
- mindspore/{mindspore_backend.dll → mindspore_ops_host.dll} +0 -0
- mindspore/mindspore_ops_kernel_common.dll +0 -0
- mindspore/mindspore_profiler.dll +0 -0
- mindspore/mindspore_pyboost.dll +0 -0
- mindspore/mindspore_pynative.dll +0 -0
- mindspore/mindspore_res_manager.dll +0 -0
- mindspore/mindspore_runtime_pipeline.dll +0 -0
- mindspore/mint/__init__.py +798 -761
- mindspore/mint/distributed/__init__.py +70 -4
- mindspore/mint/distributed/distributed.py +2679 -44
- mindspore/mint/linalg/__init__.py +8 -0
- mindspore/mint/nn/__init__.py +743 -22
- mindspore/mint/nn/functional.py +716 -23
- mindspore/mint/nn/layer/__init__.py +21 -4
- mindspore/mint/nn/layer/_functions.py +334 -0
- mindspore/mint/nn/layer/activation.py +276 -1
- mindspore/mint/nn/layer/basic.py +123 -0
- mindspore/mint/nn/layer/conv.py +933 -0
- mindspore/mint/nn/layer/normalization.py +223 -28
- mindspore/mint/nn/layer/padding.py +797 -0
- mindspore/mint/nn/layer/pooling.py +235 -0
- mindspore/mint/optim/__init__.py +3 -1
- mindspore/mint/optim/adam.py +223 -0
- mindspore/mint/optim/adamw.py +26 -19
- mindspore/mint/optim/sgd.py +171 -0
- mindspore/mint/special/__init__.py +2 -1
- mindspore/msobj140.dll +0 -0
- mindspore/mspdb140.dll +0 -0
- mindspore/mspdbcore.dll +0 -0
- mindspore/mspdbst.dll +0 -0
- mindspore/mspft140.dll +0 -0
- mindspore/msvcdis140.dll +0 -0
- mindspore/msvcp140_1.dll +0 -0
- mindspore/msvcp140_2.dll +0 -0
- mindspore/msvcp140_atomic_wait.dll +0 -0
- mindspore/msvcp140_codecvt_ids.dll +0 -0
- mindspore/multiprocessing/__init__.py +5 -0
- mindspore/nn/__init__.py +4 -1
- mindspore/nn/cell.py +1373 -192
- mindspore/nn/dynamic_lr.py +2 -1
- mindspore/nn/layer/activation.py +29 -27
- mindspore/nn/layer/basic.py +51 -35
- mindspore/nn/layer/channel_shuffle.py +3 -3
- mindspore/nn/layer/container.py +1 -1
- mindspore/nn/layer/conv.py +53 -42
- mindspore/nn/layer/embedding.py +12 -11
- mindspore/nn/layer/normalization.py +56 -49
- mindspore/nn/layer/padding.py +4 -3
- mindspore/nn/layer/pooling.py +120 -42
- mindspore/nn/layer/rnn_cells.py +1 -1
- mindspore/nn/layer/rnns.py +2 -1
- mindspore/nn/layer/timedistributed.py +5 -5
- mindspore/nn/layer/transformer.py +59 -36
- mindspore/nn/learning_rate_schedule.py +8 -4
- mindspore/nn/loss/loss.py +58 -55
- mindspore/nn/optim/ada_grad.py +7 -5
- mindspore/nn/optim/adadelta.py +11 -9
- mindspore/nn/optim/adafactor.py +1 -1
- mindspore/nn/optim/adam.py +19 -15
- mindspore/nn/optim/adamax.py +8 -7
- mindspore/nn/optim/adasum.py +5 -5
- mindspore/nn/optim/asgd.py +3 -1
- mindspore/nn/optim/ftrl.py +11 -9
- mindspore/nn/optim/lamb.py +1 -1
- mindspore/nn/optim/lars.py +1 -4
- mindspore/nn/optim/lazyadam.py +12 -10
- mindspore/nn/optim/momentum.py +7 -6
- mindspore/nn/optim/optimizer.py +3 -3
- mindspore/nn/optim/proximal_ada_grad.py +12 -10
- mindspore/nn/optim/rmsprop.py +13 -12
- mindspore/nn/optim/rprop.py +11 -9
- mindspore/nn/optim/sgd.py +9 -6
- mindspore/nn/optim/tft_wrapper.py +5 -2
- mindspore/nn/optim/thor.py +2 -1
- mindspore/nn/probability/bijector/bijector.py +17 -11
- mindspore/nn/probability/bijector/gumbel_cdf.py +5 -5
- mindspore/nn/probability/bijector/invert.py +2 -2
- mindspore/nn/probability/bijector/scalar_affine.py +3 -3
- mindspore/nn/probability/bijector/softplus.py +3 -2
- mindspore/nn/probability/distribution/beta.py +3 -3
- mindspore/nn/probability/distribution/categorical.py +1 -1
- mindspore/nn/probability/distribution/cauchy.py +4 -2
- mindspore/nn/probability/distribution/exponential.py +6 -7
- mindspore/nn/probability/distribution/gamma.py +2 -2
- mindspore/nn/probability/distribution/gumbel.py +2 -2
- mindspore/nn/probability/distribution/half_normal.py +5 -3
- mindspore/nn/probability/distribution/logistic.py +5 -3
- mindspore/nn/probability/distribution/poisson.py +1 -1
- mindspore/nn/probability/distribution/uniform.py +5 -3
- mindspore/nn/reinforcement/_tensors_queue.py +1 -1
- mindspore/nn/reinforcement/tensor_array.py +1 -1
- mindspore/nn/utils/init.py +13 -11
- mindspore/nn/wrap/__init__.py +6 -6
- mindspore/nn/wrap/cell_wrapper.py +181 -122
- mindspore/nn/wrap/grad_reducer.py +45 -36
- mindspore/nn/wrap/loss_scale.py +6 -7
- mindspore/numpy/array_creations.py +63 -65
- mindspore/numpy/array_ops.py +149 -144
- mindspore/numpy/logic_ops.py +41 -42
- mindspore/numpy/math_ops.py +361 -359
- mindspore/numpy/utils.py +17 -18
- mindspore/numpy/utils_const.py +5 -6
- mindspore/opencv_core452.dll +0 -0
- mindspore/opencv_imgcodecs452.dll +0 -0
- mindspore/opencv_imgproc452.dll +0 -0
- mindspore/ops/__init__.py +5 -3
- mindspore/ops/_grad_experimental/grad_comm_ops.py +112 -16
- mindspore/ops/_grad_experimental/grad_debug_ops.py +14 -2
- mindspore/ops/_grad_experimental/grad_inner_ops.py +9 -0
- mindspore/ops/_grad_experimental/grad_math_ops.py +2 -1
- mindspore/ops/_grad_experimental/taylor_rule.py +29 -0
- mindspore/ops/_op_impl/cpu/__init__.py +1 -0
- mindspore/ops/_op_impl/cpu/raise_op.py +28 -0
- mindspore/ops/_register_for_op.py +0 -11
- mindspore/{ops_generate → ops/_utils}/arg_dtype_cast.py +123 -4
- mindspore/{ops_generate → ops/_utils}/arg_handler.py +3 -65
- mindspore/ops/_vmap/vmap_array_ops.py +52 -25
- mindspore/ops/_vmap/vmap_base.py +0 -2
- mindspore/ops/_vmap/vmap_grad_nn_ops.py +21 -14
- mindspore/ops/_vmap/vmap_math_ops.py +15 -16
- mindspore/ops/_vmap/vmap_nn_ops.py +29 -42
- mindspore/ops/auto_generate/__init__.py +4 -3
- mindspore/ops/auto_generate/cpp_create_prim_instance_helper.py +258 -46
- mindspore/ops/auto_generate/gen_extend_func.py +757 -185
- mindspore/ops/auto_generate/gen_ops_def.py +4197 -2243
- mindspore/ops/auto_generate/gen_ops_prim.py +16976 -6055
- mindspore/ops/auto_generate/pyboost_inner_prim.py +221 -87
- mindspore/ops/composite/__init__.py +2 -1
- mindspore/ops/composite/base.py +20 -25
- mindspore/ops/composite/math_ops.py +6 -16
- mindspore/ops/composite/multitype_ops/__init__.py +5 -2
- mindspore/ops/composite/multitype_ops/_compile_utils.py +228 -30
- mindspore/ops/composite/multitype_ops/_constexpr_utils.py +1 -2
- mindspore/ops/composite/multitype_ops/add_impl.py +2 -1
- mindspore/ops/composite/multitype_ops/bitwise_and_impl.py +2 -1
- mindspore/ops/composite/multitype_ops/bitwise_or_impl.py +2 -1
- mindspore/ops/composite/multitype_ops/bitwise_xor_impl.py +2 -1
- mindspore/ops/composite/multitype_ops/div_impl.py +6 -4
- mindspore/ops/composite/multitype_ops/equal_impl.py +4 -3
- mindspore/ops/composite/multitype_ops/floordiv_impl.py +2 -1
- mindspore/ops/composite/multitype_ops/getitem_impl.py +3 -2
- mindspore/ops/composite/multitype_ops/greater_equal_impl.py +4 -3
- mindspore/ops/composite/multitype_ops/greater_impl.py +4 -3
- mindspore/ops/composite/multitype_ops/in_impl.py +2 -1
- mindspore/ops/composite/multitype_ops/invert_impl.py +50 -0
- mindspore/ops/composite/multitype_ops/left_shift_impl.py +2 -1
- mindspore/ops/composite/multitype_ops/less_equal_impl.py +4 -3
- mindspore/ops/composite/multitype_ops/less_impl.py +4 -3
- mindspore/ops/composite/multitype_ops/logic_not_impl.py +3 -2
- mindspore/ops/composite/multitype_ops/logical_and_impl.py +2 -1
- mindspore/ops/composite/multitype_ops/logical_or_impl.py +2 -1
- mindspore/ops/composite/multitype_ops/mod_impl.py +2 -1
- mindspore/ops/composite/multitype_ops/mul_impl.py +3 -2
- mindspore/ops/composite/multitype_ops/negative_impl.py +2 -1
- mindspore/ops/composite/multitype_ops/not_equal_impl.py +2 -1
- mindspore/ops/composite/multitype_ops/not_in_impl.py +2 -1
- mindspore/ops/composite/multitype_ops/ones_like_impl.py +18 -0
- mindspore/ops/composite/multitype_ops/pow_impl.py +2 -30
- mindspore/ops/composite/multitype_ops/right_shift_impl.py +2 -1
- mindspore/ops/composite/multitype_ops/setitem_impl.py +2 -1
- mindspore/ops/composite/multitype_ops/sub_impl.py +2 -1
- mindspore/ops/function/__init__.py +40 -2
- mindspore/ops/function/_add_attr_func.py +58 -0
- mindspore/ops/function/array_func.py +2089 -2403
- mindspore/ops/function/clip_func.py +80 -23
- mindspore/ops/function/debug_func.py +57 -57
- mindspore/ops/function/grad/__init__.py +1 -0
- mindspore/ops/function/grad/grad_func.py +104 -71
- mindspore/ops/function/image_func.py +2 -2
- mindspore/ops/function/linalg_func.py +47 -78
- mindspore/ops/function/math_func.py +4351 -3813
- mindspore/ops/function/nn_func.py +1712 -637
- mindspore/ops/function/other_func.py +159 -1
- mindspore/ops/function/parameter_func.py +18 -84
- mindspore/ops/function/random_func.py +452 -387
- mindspore/ops/function/reshard_func.py +4 -70
- mindspore/ops/function/sparse_func.py +3 -3
- mindspore/ops/function/sparse_unary_func.py +6 -6
- mindspore/ops/function/spectral_func.py +25 -58
- mindspore/ops/function/vmap_func.py +26 -18
- mindspore/ops/functional.py +23 -7
- mindspore/ops/functional_overload.py +1548 -0
- mindspore/ops/op_info_register.py +32 -244
- mindspore/ops/operations/__init__.py +23 -15
- mindspore/ops/operations/_custom_ops_utils.py +235 -0
- mindspore/ops/operations/_embedding_cache_ops.py +4 -4
- mindspore/ops/operations/_grad_ops.py +2 -43
- mindspore/ops/operations/_infer_ops.py +2 -1
- mindspore/ops/operations/_inner_ops.py +43 -84
- mindspore/ops/operations/_ms_kernel.py +4 -10
- mindspore/ops/operations/_rl_inner_ops.py +1 -1
- mindspore/ops/operations/_scalar_ops.py +3 -2
- mindspore/ops/operations/_sequence_ops.py +1 -1
- mindspore/ops/operations/_tensor_array.py +1 -1
- mindspore/ops/operations/array_ops.py +81 -324
- mindspore/ops/operations/comm_ops.py +154 -108
- mindspore/ops/operations/custom_ops.py +298 -87
- mindspore/ops/operations/debug_ops.py +157 -59
- mindspore/ops/operations/inner_ops.py +7 -5
- mindspore/ops/operations/linalg_ops.py +1 -57
- mindspore/ops/operations/manually_defined/_inner.py +1 -1
- mindspore/ops/operations/manually_defined/ops_def.py +928 -180
- mindspore/ops/operations/math_ops.py +32 -234
- mindspore/ops/operations/nn_ops.py +212 -531
- mindspore/ops/operations/other_ops.py +62 -9
- mindspore/ops/operations/random_ops.py +13 -7
- mindspore/ops/operations/reshard_ops.py +1 -1
- mindspore/ops/operations/sparse_ops.py +2 -2
- mindspore/ops/primitive.py +66 -53
- mindspore/ops/tensor_method.py +1895 -0
- mindspore/ops_generate/__init__.py +0 -5
- mindspore/ops_generate/aclnn/__init__.py +0 -0
- mindspore/ops_generate/aclnn/aclnn_kernel_register_auto_cc_generator.py +135 -0
- mindspore/ops_generate/aclnn/gen_aclnn_implement.py +257 -0
- mindspore/ops_generate/api/__init__.py +0 -0
- mindspore/ops_generate/api/add_tensor_docs_generator.py +56 -0
- mindspore/ops_generate/api/cpp_create_prim_instance_helper_generator.py +105 -0
- mindspore/ops_generate/api/functional_map_cpp_generator.py +504 -0
- mindspore/ops_generate/api/functional_overload_py_generator.py +112 -0
- mindspore/ops_generate/api/functions_cc_generator.py +237 -0
- mindspore/ops_generate/api/gen_api.py +103 -0
- mindspore/ops_generate/api/op_api_proto.py +235 -0
- mindspore/ops_generate/api/tensor_func_reg_cpp_generator.py +461 -0
- mindspore/ops_generate/common/__init__.py +0 -0
- mindspore/ops_generate/common/base_generator.py +11 -0
- mindspore/ops_generate/common/gen_constants.py +91 -0
- mindspore/ops_generate/common/gen_utils.py +348 -0
- mindspore/ops_generate/common/op_proto.py +473 -0
- mindspore/ops_generate/common/template.py +523 -0
- mindspore/ops_generate/gen_ops.py +22 -1069
- mindspore/ops_generate/op_def/__init__.py +0 -0
- mindspore/ops_generate/op_def/gen_op_def.py +90 -0
- mindspore/ops_generate/op_def/lite_ops_cpp_generator.py +191 -0
- mindspore/ops_generate/op_def/ops_def_cc_generator.py +296 -0
- mindspore/ops_generate/op_def/ops_def_h_generator.py +74 -0
- mindspore/ops_generate/op_def/ops_name_h_generator.py +83 -0
- mindspore/ops_generate/op_def/ops_primitive_h_generator.py +125 -0
- mindspore/ops_generate/op_def_py/__init__.py +0 -0
- mindspore/ops_generate/op_def_py/gen_op_def_py.py +47 -0
- mindspore/ops_generate/op_def_py/op_def_py_generator.py +132 -0
- mindspore/ops_generate/op_def_py/op_prim_py_generator.py +489 -0
- mindspore/ops_generate/pyboost/__init__.py +0 -0
- mindspore/ops_generate/pyboost/auto_grad_impl_cc_generator.py +139 -0
- mindspore/ops_generate/pyboost/auto_grad_reg_cc_generator.py +93 -0
- mindspore/ops_generate/pyboost/gen_pyboost_func.py +175 -0
- mindspore/ops_generate/pyboost/op_template_parser.py +517 -0
- mindspore/ops_generate/pyboost/pyboost_functions_cpp_generator.py +407 -0
- mindspore/ops_generate/pyboost/pyboost_functions_h_generator.py +100 -0
- mindspore/ops_generate/pyboost/pyboost_functions_py_generator.py +148 -0
- mindspore/ops_generate/pyboost/pyboost_grad_function_cpp_generator.py +155 -0
- mindspore/ops_generate/pyboost/pyboost_inner_prim_generator.py +132 -0
- mindspore/ops_generate/pyboost/pyboost_native_grad_functions_generator.py +272 -0
- mindspore/ops_generate/pyboost/pyboost_op_cpp_code_generator.py +938 -0
- mindspore/ops_generate/pyboost/pyboost_overload_functions_cpp_generator.py +357 -0
- mindspore/ops_generate/{pyboost_utils.py → pyboost/pyboost_utils.py} +179 -36
- mindspore/ops_generate/resources/__init__.py +0 -0
- mindspore/ops_generate/resources/resource_list.py +30 -0
- mindspore/ops_generate/resources/resource_loader.py +36 -0
- mindspore/ops_generate/resources/resource_manager.py +64 -0
- mindspore/ops_generate/resources/yaml_loader.py +88 -0
- mindspore/ops_generate/tensor_py_cc_generator.py +122 -0
- mindspore/parallel/__init__.py +7 -3
- mindspore/parallel/_auto_parallel_context.py +159 -40
- mindspore/parallel/_cell_wrapper.py +132 -15
- mindspore/parallel/_parallel_serialization.py +107 -5
- mindspore/parallel/_ps_context.py +1 -1
- mindspore/parallel/_recovery_context.py +7 -2
- mindspore/parallel/_tensor.py +142 -18
- mindspore/parallel/_utils.py +199 -23
- mindspore/parallel/algo_parameter_config.py +4 -4
- mindspore/parallel/auto_parallel.py +732 -0
- mindspore/parallel/checkpoint_convert.py +159 -0
- mindspore/parallel/checkpoint_transform.py +700 -35
- mindspore/parallel/cluster/process_entity/_api.py +276 -50
- mindspore/parallel/cluster/process_entity/_utils.py +41 -6
- mindspore/parallel/cluster/run.py +21 -4
- mindspore/parallel/function/__init__.py +24 -0
- mindspore/parallel/function/reshard_func.py +258 -0
- mindspore/parallel/nn/__init__.py +25 -0
- mindspore/parallel/nn/parallel_cell_wrapper.py +263 -0
- mindspore/parallel/nn/parallel_grad_reducer.py +169 -0
- mindspore/parallel/parameter_broadcast.py +25 -14
- mindspore/parallel/shard.py +137 -59
- mindspore/parallel/transform_safetensors.py +364 -305
- mindspore/pgodb140.dll +0 -0
- mindspore/pgort140.dll +0 -0
- mindspore/profiler/__init__.py +22 -5
- mindspore/profiler/analysis/__init__.py +0 -0
- mindspore/profiler/analysis/parser/__init__.py +0 -0
- mindspore/profiler/analysis/parser/ascend_cann_parser.py +170 -0
- mindspore/profiler/analysis/parser/base_parser.py +158 -0
- mindspore/profiler/analysis/parser/framework_cann_relation_parser.py +45 -0
- mindspore/profiler/analysis/parser/ms_framework_parser.py +142 -0
- mindspore/profiler/analysis/parser/ms_minddata_parser.py +145 -0
- mindspore/profiler/analysis/parser/timeline_assembly_factory/__init__.py +0 -0
- mindspore/profiler/analysis/parser/timeline_assembly_factory/ascend_timeline_assembler.py +264 -0
- mindspore/profiler/analysis/parser/timeline_assembly_factory/base_timeline_assembler.py +40 -0
- mindspore/profiler/analysis/parser/timeline_assembly_factory/trace_view_container.py +109 -0
- mindspore/profiler/analysis/parser/timeline_creator/__init__.py +0 -0
- mindspore/profiler/analysis/parser/timeline_creator/base_timeline_creator.py +44 -0
- mindspore/profiler/analysis/parser/timeline_creator/cpu_op_timeline_creator.py +90 -0
- mindspore/profiler/analysis/parser/timeline_creator/fwk_timeline_creator.py +76 -0
- mindspore/profiler/analysis/parser/timeline_creator/msprof_timeline_creator.py +103 -0
- mindspore/profiler/analysis/parser/timeline_creator/scope_layer_timeline_creator.py +134 -0
- mindspore/profiler/analysis/parser/timeline_event/__init__.py +0 -0
- mindspore/profiler/analysis/parser/timeline_event/base_event.py +233 -0
- mindspore/profiler/analysis/parser/timeline_event/cpu_op_event.py +47 -0
- mindspore/profiler/analysis/parser/timeline_event/flow_event.py +36 -0
- mindspore/profiler/analysis/parser/timeline_event/fwk_event.py +415 -0
- mindspore/profiler/analysis/parser/timeline_event/msprof_event.py +73 -0
- mindspore/profiler/analysis/parser/timeline_event/scope_layer_event.py +53 -0
- mindspore/profiler/analysis/parser/timeline_event/timeline_event_pool.py +146 -0
- mindspore/profiler/analysis/task_manager.py +131 -0
- mindspore/profiler/analysis/time_converter.py +84 -0
- mindspore/profiler/analysis/viewer/__init__.py +0 -0
- mindspore/profiler/analysis/viewer/ascend_communication_viewer.py +372 -0
- mindspore/profiler/analysis/viewer/ascend_integrate_viewer.py +87 -0
- mindspore/profiler/analysis/viewer/ascend_kernel_details_viewer.py +250 -0
- mindspore/profiler/analysis/viewer/ascend_memory_viewer.py +320 -0
- mindspore/profiler/analysis/viewer/ascend_op_memory_viewer.py +327 -0
- mindspore/profiler/analysis/viewer/ascend_step_trace_time_viewer.py +376 -0
- mindspore/profiler/analysis/viewer/ascend_timeline_viewer.py +58 -0
- mindspore/profiler/analysis/viewer/base_viewer.py +26 -0
- mindspore/profiler/analysis/viewer/ms_dataset_viewer.py +96 -0
- mindspore/profiler/analysis/viewer/ms_minddata_viewer.py +581 -0
- mindspore/profiler/analysis/work_flow.py +73 -0
- mindspore/profiler/common/ascend_msprof_exporter.py +139 -0
- mindspore/profiler/common/command_executor.py +90 -0
- mindspore/profiler/common/constant.py +186 -3
- mindspore/profiler/common/file_manager.py +208 -0
- mindspore/profiler/common/log.py +130 -0
- mindspore/profiler/common/msprof_cmd_tool.py +221 -0
- mindspore/profiler/common/path_manager.py +395 -0
- mindspore/profiler/common/process_bar.py +168 -0
- mindspore/profiler/common/process_pool.py +9 -3
- mindspore/profiler/common/profiler_context.py +500 -0
- mindspore/profiler/common/profiler_info.py +304 -0
- mindspore/profiler/common/profiler_meta_data.py +74 -0
- mindspore/profiler/common/profiler_output_path.py +284 -0
- mindspore/profiler/common/profiler_parameters.py +251 -0
- mindspore/profiler/common/profiler_path_manager.py +179 -0
- mindspore/profiler/common/record_function.py +76 -0
- mindspore/profiler/common/tlv_decoder.py +76 -0
- mindspore/profiler/common/util.py +75 -2
- mindspore/profiler/dynamic_profiler.py +341 -75
- mindspore/profiler/envprofiler.py +163 -0
- mindspore/profiler/experimental_config.py +197 -0
- mindspore/profiler/mstx.py +242 -0
- mindspore/profiler/platform/__init__.py +21 -0
- mindspore/profiler/platform/base_profiler.py +40 -0
- mindspore/profiler/platform/cpu_profiler.py +124 -0
- mindspore/profiler/platform/gpu_profiler.py +74 -0
- mindspore/profiler/platform/npu_profiler.py +335 -0
- mindspore/profiler/profiler.py +1073 -90
- mindspore/profiler/profiler_action_controller.py +187 -0
- mindspore/profiler/profiler_interface.py +118 -0
- mindspore/profiler/schedule.py +243 -0
- mindspore/rewrite/api/node.py +15 -13
- mindspore/rewrite/api/symbol_tree.py +2 -3
- mindspore/run_check/_check_version.py +27 -20
- mindspore/run_check/run_check.py +1 -1
- mindspore/runtime/__init__.py +37 -0
- mindspore/runtime/device.py +27 -0
- mindspore/runtime/event.py +209 -0
- mindspore/runtime/executor.py +177 -0
- mindspore/runtime/memory.py +416 -0
- mindspore/runtime/stream.py +460 -0
- mindspore/runtime/thread_bind_core.py +401 -0
- mindspore/safeguard/rewrite_obfuscation.py +12 -9
- mindspore/swresample-4.dll +0 -0
- mindspore/swscale-6.dll +0 -0
- mindspore/tbbmalloc.dll +0 -0
- mindspore/tinyxml2.dll +0 -0
- mindspore/train/__init__.py +8 -8
- mindspore/train/_utils.py +96 -27
- mindspore/train/amp.py +9 -5
- mindspore/train/callback/__init__.py +2 -2
- mindspore/train/callback/_callback.py +2 -16
- mindspore/train/callback/_checkpoint.py +53 -55
- mindspore/train/callback/_cluster_monitor.py +14 -18
- mindspore/train/callback/_early_stop.py +1 -1
- mindspore/train/callback/_flops_collector.py +103 -68
- mindspore/train/callback/_history.py +8 -5
- mindspore/train/callback/_lambda_callback.py +2 -2
- mindspore/train/callback/_landscape.py +0 -3
- mindspore/train/callback/_loss_monitor.py +2 -1
- mindspore/train/callback/_on_request_exit.py +6 -5
- mindspore/train/callback/_reduce_lr_on_plateau.py +11 -6
- mindspore/train/callback/_summary_collector.py +52 -19
- mindspore/train/callback/_time_monitor.py +2 -1
- mindspore/train/callback/{_tft_register.py → _train_fault_tolerance.py} +228 -108
- mindspore/train/data_sink.py +25 -2
- mindspore/train/dataset_helper.py +15 -16
- mindspore/train/loss_scale_manager.py +8 -7
- mindspore/train/metrics/accuracy.py +3 -3
- mindspore/train/metrics/confusion_matrix.py +9 -9
- mindspore/train/metrics/error.py +3 -3
- mindspore/train/metrics/hausdorff_distance.py +4 -4
- mindspore/train/metrics/mean_surface_distance.py +3 -3
- mindspore/train/metrics/metric.py +0 -12
- mindspore/train/metrics/occlusion_sensitivity.py +4 -2
- mindspore/train/metrics/precision.py +11 -10
- mindspore/train/metrics/recall.py +9 -9
- mindspore/train/metrics/root_mean_square_surface_distance.py +2 -2
- mindspore/train/mind_ir_pb2.py +174 -46
- mindspore/train/model.py +269 -136
- mindspore/train/serialization.py +622 -978
- mindspore/train/summary/_summary_adapter.py +2 -2
- mindspore/train/summary/summary_record.py +2 -3
- mindspore/train/train_thor/model_thor.py +1 -1
- mindspore/turbojpeg.dll +0 -0
- mindspore/utils/__init__.py +6 -3
- mindspore/utils/dryrun.py +140 -0
- mindspore/utils/hooks.py +81 -0
- mindspore/utils/runtime_execution_order_check.py +552 -0
- mindspore/utils/utils.py +138 -4
- mindspore/vcmeta.dll +0 -0
- mindspore/vcruntime140.dll +0 -0
- mindspore/vcruntime140_1.dll +0 -0
- mindspore/version.py +1 -1
- {mindspore-2.4.10.dist-info → mindspore-2.6.0.dist-info}/METADATA +3 -3
- {mindspore-2.4.10.dist-info → mindspore-2.6.0.dist-info}/RECORD +587 -418
- {mindspore-2.4.10.dist-info → mindspore-2.6.0.dist-info}/entry_points.txt +1 -1
- mindspore/_install_custom.py +0 -43
- mindspore/common/_register_for_adapter.py +0 -74
- mindspore/common/_tensor_overload.py +0 -139
- mindspore/mindspore_np_dtype.dll +0 -0
- mindspore/ops/auto_generate/gen_arg_dtype_cast.py +0 -252
- mindspore/ops/auto_generate/gen_arg_handler.py +0 -197
- mindspore/ops/operations/_opaque_predicate_registry.py +0 -41
- mindspore/ops_generate/gen_aclnn_implement.py +0 -263
- mindspore/ops_generate/gen_ops_inner_prim.py +0 -131
- mindspore/ops_generate/gen_pyboost_func.py +0 -1052
- mindspore/ops_generate/gen_utils.py +0 -209
- mindspore/ops_generate/op_proto.py +0 -145
- mindspore/ops_generate/template.py +0 -261
- mindspore/profiler/envprofiling.py +0 -254
- mindspore/profiler/profiling.py +0 -1926
- {mindspore-2.4.10.dist-info → mindspore-2.6.0.dist-info}/WHEEL +0 -0
- {mindspore-2.4.10.dist-info → mindspore-2.6.0.dist-info}/top_level.txt +0 -0
mindspore/mint/nn/__init__.py
CHANGED
|
@@ -21,7 +21,10 @@ from __future__ import absolute_import
|
|
|
21
21
|
import mindspore.ops as ops
|
|
22
22
|
from mindspore.mint.nn import functional as F
|
|
23
23
|
from mindspore.nn.cell import Cell
|
|
24
|
+
from mindspore.nn import AdaptiveMaxPool2d
|
|
25
|
+
from mindspore.nn import SoftMarginLoss
|
|
24
26
|
from mindspore.nn import EmbeddingExt as Embedding, MaxPool2dExt as MaxPool2d, LayerNormExt as LayerNorm, Linear
|
|
27
|
+
import mindspore.nn as nn
|
|
25
28
|
|
|
26
29
|
# 1
|
|
27
30
|
|
|
@@ -32,6 +35,12 @@ from mindspore.nn.layer.basic import Identity
|
|
|
32
35
|
# 4
|
|
33
36
|
|
|
34
37
|
# 5
|
|
38
|
+
from mindspore.mint.nn.layer.padding import (
|
|
39
|
+
ConstantPad1d, ConstantPad2d, ConstantPad3d,
|
|
40
|
+
ZeroPad1d, ZeroPad2d, ZeroPad3d,
|
|
41
|
+
ReflectionPad1d, ReflectionPad2d, ReflectionPad3d,
|
|
42
|
+
ReplicationPad1d, ReplicationPad2d, ReplicationPad3d
|
|
43
|
+
)
|
|
35
44
|
|
|
36
45
|
# 6
|
|
37
46
|
from mindspore.nn.layer.basic import UnfoldExt as Unfold
|
|
@@ -53,7 +62,7 @@ from mindspore.nn.layer import ReLU
|
|
|
53
62
|
# 14
|
|
54
63
|
from mindspore.nn.layer.basic import DropoutExt as Dropout
|
|
55
64
|
# 15
|
|
56
|
-
|
|
65
|
+
from mindspore.mint.nn.layer.conv import Conv1d, Conv2d, Conv3d, ConvTranspose2d
|
|
57
66
|
# 16
|
|
58
67
|
from mindspore.nn.layer import LogSoftmaxExt as LogSoftmax
|
|
59
68
|
# 17
|
|
@@ -105,6 +114,7 @@ from mindspore.nn.layer import PReLUExt as PReLU
|
|
|
105
114
|
# 40
|
|
106
115
|
from mindspore.mint.nn.layer.normalization import GroupNorm
|
|
107
116
|
from mindspore.mint.nn.layer.normalization import LayerNorm
|
|
117
|
+
from mindspore.mint.nn.layer.normalization import SyncBatchNorm
|
|
108
118
|
# 41
|
|
109
119
|
|
|
110
120
|
# 42
|
|
@@ -116,7 +126,7 @@ from mindspore.mint.nn.layer.normalization import LayerNorm
|
|
|
116
126
|
# 45
|
|
117
127
|
|
|
118
128
|
# 46
|
|
119
|
-
from mindspore.mint.nn.layer.activation import SiLU, LogSigmoid
|
|
129
|
+
from mindspore.mint.nn.layer.activation import SiLU, LogSigmoid, Sigmoid
|
|
120
130
|
|
|
121
131
|
# 47
|
|
122
132
|
|
|
@@ -215,17 +225,19 @@ from mindspore.mint.nn.layer.activation import SiLU, LogSigmoid
|
|
|
215
225
|
# 94
|
|
216
226
|
|
|
217
227
|
# 95
|
|
218
|
-
|
|
228
|
+
from mindspore.nn.layer import AvgPool3dExt as AvgPool3d
|
|
219
229
|
# 96
|
|
220
230
|
|
|
221
231
|
# 97
|
|
222
232
|
|
|
223
233
|
# 98
|
|
224
|
-
|
|
234
|
+
from mindspore.nn.layer import AvgPool1dExt as AvgPool1d
|
|
225
235
|
# 99
|
|
226
236
|
from mindspore.nn.layer import AvgPool2dExt as AvgPool2d
|
|
227
237
|
# 100
|
|
228
238
|
from mindspore.nn.layer import SoftShrink as Softshrink
|
|
239
|
+
# 152
|
|
240
|
+
from mindspore.mint.nn.layer.pooling import AdaptiveAvgPool3d
|
|
229
241
|
# 159
|
|
230
242
|
|
|
231
243
|
# 220
|
|
@@ -237,11 +249,33 @@ from mindspore.nn.layer import HSwish as Hardswish
|
|
|
237
249
|
# 238
|
|
238
250
|
from mindspore.nn.loss import L1LossExt as L1Loss
|
|
239
251
|
|
|
252
|
+
# 254
|
|
253
|
+
from mindspore.mint.nn.layer.pooling import MaxUnpool2d
|
|
254
|
+
|
|
255
|
+
# 256
|
|
256
|
+
from mindspore.mint.nn.layer.activation import Threshold
|
|
257
|
+
|
|
240
258
|
# 257
|
|
241
259
|
|
|
242
260
|
# 258
|
|
243
261
|
from mindspore.ops.function.nn_func import mse_loss_ext
|
|
244
262
|
|
|
263
|
+
# 393
|
|
264
|
+
from mindspore.mint.nn.layer.basic import Dropout2d
|
|
265
|
+
|
|
266
|
+
# 406
|
|
267
|
+
from mindspore.mint.nn.layer.activation import ELU
|
|
268
|
+
|
|
269
|
+
# 407
|
|
270
|
+
from mindspore.mint.nn.layer.basic import Flatten
|
|
271
|
+
|
|
272
|
+
# 421
|
|
273
|
+
from mindspore.mint.nn.layer.activation import Tanh
|
|
274
|
+
|
|
275
|
+
# 536
|
|
276
|
+
from mindspore.mint.nn.layer.activation import GLU
|
|
277
|
+
# 548
|
|
278
|
+
from mindspore.ops.function.nn_func import kl_div_ext
|
|
245
279
|
|
|
246
280
|
# 674
|
|
247
281
|
from mindspore.mint.nn.layer.normalization import BatchNorm1d
|
|
@@ -252,10 +286,217 @@ from mindspore.mint.nn.layer.normalization import BatchNorm2d
|
|
|
252
286
|
# 676
|
|
253
287
|
from mindspore.mint.nn.layer.normalization import BatchNorm3d
|
|
254
288
|
|
|
289
|
+
from mindspore.mint.nn.layer.pooling import AdaptiveMaxPool1d
|
|
290
|
+
|
|
255
291
|
from mindspore.mint.nn.layer.pooling import AdaptiveAvgPool1d
|
|
256
292
|
|
|
257
293
|
from mindspore.mint.nn.layer.pooling import AdaptiveAvgPool2d
|
|
258
294
|
|
|
295
|
+
from mindspore.ops.function.nn_func import cross_entropy_ext as cross_entropy
|
|
296
|
+
|
|
297
|
+
from mindspore.ops.function.nn_func import _nllloss_nd as nllloss
|
|
298
|
+
|
|
299
|
+
from mindspore.ops.auto_generate import upsample_nearest2d_op, upsample_bilinear2d_op
|
|
300
|
+
|
|
301
|
+
|
|
302
|
+
class NLLLoss(Cell):
|
|
303
|
+
r"""
|
|
304
|
+
Gets the negative log likelihood loss between inputs and target.
|
|
305
|
+
|
|
306
|
+
The nll loss with reduction=none can be described as:
|
|
307
|
+
|
|
308
|
+
.. math::
|
|
309
|
+
|
|
310
|
+
\ell(x, t)=L=\left\{l_{1}, \ldots, l_{N}\right\}^{\top},
|
|
311
|
+
\quad l_{n}=-w_{t_{n}} x_{n, t_{n}},
|
|
312
|
+
\quad w_{c}=\text { weight }[c] \cdot \mathbb{1}
|
|
313
|
+
\{c \not= \text{ignore_index}\},
|
|
314
|
+
|
|
315
|
+
where :math:`x` is the inputs, :math:`t` is the target, :math:`w` is the weight,
|
|
316
|
+
:math:`N` is the batch size, :math:`c` belonging to :math:`[0, C-1]` is class index,
|
|
317
|
+
where :math:`C` is the number of classes.
|
|
318
|
+
|
|
319
|
+
If `reduction` is not ``'None'`` (default ``'mean'``), then
|
|
320
|
+
|
|
321
|
+
.. math::
|
|
322
|
+
|
|
323
|
+
\ell(x, t)=\left\{\begin{array}{ll}
|
|
324
|
+
\sum_{n=1}^{N} \frac{1}{\sum_{n=1}^{N} w_{t n}} l_{n}, & \text { if reduction }=\text { 'mean', } \\
|
|
325
|
+
\sum_{n=1}^{N} l_{n}, & \text { if reduction }=\text { 'sum' }
|
|
326
|
+
\end{array}\right.
|
|
327
|
+
|
|
328
|
+
.. warning::
|
|
329
|
+
This is an experimental API that is subject to change or deletion.
|
|
330
|
+
|
|
331
|
+
Args:
|
|
332
|
+
weight (Tensor, optional): A rescaling weight applied to the loss of each batch element.
|
|
333
|
+
If not None, the shape is :math:`(C,)`, data type must be float16 or float32 or bfloat16(only supported by
|
|
334
|
+
Atlas A2 training series products). It should have the same data type as `input` . Default: ``None`` .
|
|
335
|
+
ignore_index (int, optional): Specifies a target value that is ignored and does not contribute to the input
|
|
336
|
+
gradient. Only valid in class indices, please set it to a negative number in probabilities.
|
|
337
|
+
Default: ``-100`` .
|
|
338
|
+
reduction (str, optional): Apply specific reduction method to the output: ``'none'`` , ``'mean'`` ,
|
|
339
|
+
``'sum'`` . Default: ``'mean'`` .
|
|
340
|
+
|
|
341
|
+
- ``'none'``: no reduction will be applied.
|
|
342
|
+
- ``'mean'``: compute and return the weighted mean of elements in the output.
|
|
343
|
+
- ``'sum'``: the output elements will be summed.
|
|
344
|
+
|
|
345
|
+
Inputs:
|
|
346
|
+
- **input** (Tensor) - :math:`(N)` or :math:`(N, C)` where `C = number of classes` , `N = batch size` ,
|
|
347
|
+
or :math:`(N, C, d_1, d_2, ..., d_K)` (for high-dimensional data).
|
|
348
|
+
`input` is expected to be log-probabilities, data type must be float16 or float32 or bfloat16(only supported
|
|
349
|
+
by Atlas A2 training series products).
|
|
350
|
+
- **target** (Tensor) - :math:`()` or :math:`(N)` ,
|
|
351
|
+
where the value range is :math:`[0, C-1]`, or :math:`(N, d_1, d_2, ..., d_K)` for
|
|
352
|
+
high-dimensional loss, data type must be int32 or int64 or uint8.
|
|
353
|
+
|
|
354
|
+
Outputs:
|
|
355
|
+
Tensor, the data type is the same as `input` .
|
|
356
|
+
|
|
357
|
+
Supported Platforms:
|
|
358
|
+
``Ascend``
|
|
359
|
+
|
|
360
|
+
Examples:
|
|
361
|
+
>>> import mindspore
|
|
362
|
+
>>> import numpy as np
|
|
363
|
+
>>> from mindspore import Tensor, ops
|
|
364
|
+
>>> inputs = mindspore.Tensor(np.random.randn(3, 5), mindspore.float32)
|
|
365
|
+
>>> target = mindspore.Tensor(np.array([1, 0, 4]), mindspore.int32)
|
|
366
|
+
>>> op = mindspore.mint.nn.NLLLoss()
|
|
367
|
+
>>> output = op(inputs, target)
|
|
368
|
+
|
|
369
|
+
"""
|
|
370
|
+
|
|
371
|
+
def __init__(self, weight=None, ignore_index=-100, reduction='mean'):
|
|
372
|
+
super(NLLLoss, self).__init__()
|
|
373
|
+
self.weight = weight
|
|
374
|
+
self.ignore_index = ignore_index
|
|
375
|
+
self.reduction = reduction
|
|
376
|
+
|
|
377
|
+
def construct(self, input, target):
|
|
378
|
+
out = nllloss(input, target, self.weight, self.ignore_index, self.reduction)
|
|
379
|
+
return out
|
|
380
|
+
|
|
381
|
+
|
|
382
|
+
class CrossEntropyLoss(Cell):
|
|
383
|
+
r"""
|
|
384
|
+
The cross entropy loss between input and target.
|
|
385
|
+
|
|
386
|
+
The cross entropy supports two kind of targets:
|
|
387
|
+
|
|
388
|
+
- Class indices (int) in the range :math:`[0, C)` where :math:`C` is the number of classes,
|
|
389
|
+
the loss with reduction=none can be described as:
|
|
390
|
+
|
|
391
|
+
.. math::
|
|
392
|
+
|
|
393
|
+
\ell(x, y) = L = \{l_1,\dots,l_N\}^\top, \quad
|
|
394
|
+
l_n = - w_{y_n} \log \frac{\exp(x_{n,y_n})}{\sum_{c=1}^C \exp(x_{n,c})}
|
|
395
|
+
\cdot \mathbb{1}\{y_n \not= \text{ignore_index}\}
|
|
396
|
+
|
|
397
|
+
where :math:`x` is the inputs, :math:`y` is the target, :math:`w` is the weight, :math:`N` is the batch size,
|
|
398
|
+
:math:`c` belonging to :math:`[0, C-1]` is class index, where :math:`C` is the number of classes.
|
|
399
|
+
|
|
400
|
+
If `reduction` is not ``None`` (default ``'mean'`` ), then
|
|
401
|
+
|
|
402
|
+
.. math::
|
|
403
|
+
|
|
404
|
+
\ell(x, y) = \begin{cases}
|
|
405
|
+
\sum_{n=1}^N \frac{1}{\sum_{n=1}^N w_{y_n} \cdot \mathbb{1}\{y_n \not= \text{ignore_index}\}} l_n, &
|
|
406
|
+
\text{if reduction} = \text{'mean',}\\
|
|
407
|
+
\sum_{n=1}^N l_n, &
|
|
408
|
+
\text{if reduction} = \text{'sum'.}
|
|
409
|
+
\end{cases}
|
|
410
|
+
|
|
411
|
+
- Probabilities (float) for each class, useful when labels beyond a single class per minibatch item
|
|
412
|
+
are required, the loss with reduction=none can be described as:
|
|
413
|
+
|
|
414
|
+
.. math::
|
|
415
|
+
|
|
416
|
+
\ell(x, y) = L = \{l_1,\dots,l_N\}^\top, \quad
|
|
417
|
+
l_n = - \sum_{c=1}^C w_c \log \frac{\exp(x_{n,c})}{\sum_{i=1}^C \exp(x_{n,i})} y_{n,c}
|
|
418
|
+
|
|
419
|
+
where :math:`x` is the inputs, :math:`y` is the target, :math:`w` is the weight, N is the batch size,
|
|
420
|
+
:math:`c` belonging to :math:`[0, C-1]` is class index, where :math:`C` is the number of classes.
|
|
421
|
+
|
|
422
|
+
If `reduction` is not ``None`` (default ``'mean'`` ), then
|
|
423
|
+
|
|
424
|
+
.. math::
|
|
425
|
+
|
|
426
|
+
\ell(x, y) = \begin{cases}
|
|
427
|
+
\frac{\sum_{n=1}^N l_n}{N}, &
|
|
428
|
+
\text{if reduction} = \text{'mean',}\\
|
|
429
|
+
\sum_{n=1}^N l_n, &
|
|
430
|
+
\text{if reduction} = \text{'sum'.}
|
|
431
|
+
\end{cases}
|
|
432
|
+
|
|
433
|
+
.. warning::
|
|
434
|
+
This is an experimental API that is subject to change or deletion.
|
|
435
|
+
|
|
436
|
+
Note:
|
|
437
|
+
Dynamic shape, dynamic rank and variable constant input are not supported in `strict graph mode
|
|
438
|
+
(jit_syntax_level=mindspore.STRICT)
|
|
439
|
+
<https://www.mindspore.cn/docs/en/master/api_python/mindspore/mindspore.JitConfig.html>`_.
|
|
440
|
+
|
|
441
|
+
Args:
|
|
442
|
+
weight (Tensor, optional): A rescaling weight applied to the loss of each batch element.
|
|
443
|
+
If not None, the shape is :math:`(C,)`, data type must be float16 or float32 or bfloat16(only supported by
|
|
444
|
+
Atlas A2 training series products). Default: ``None`` .
|
|
445
|
+
ignore_index (int, optional): Specifies a target value that is ignored and does not contribute to the input
|
|
446
|
+
gradient. Only valid in class indices, please set it to a negative number in probabilities.
|
|
447
|
+
Default: ``-100`` .
|
|
448
|
+
reduction (str, optional): Apply specific reduction method to the output: ``'none'`` , ``'mean'`` ,
|
|
449
|
+
``'sum'`` . Default: ``'mean'`` .
|
|
450
|
+
|
|
451
|
+
- ``'none'``: no reduction will be applied.
|
|
452
|
+
- ``'mean'``: compute and return the weighted mean of elements in the output.
|
|
453
|
+
- ``'sum'``: the output elements will be summed.
|
|
454
|
+
|
|
455
|
+
label_smoothing (float, optional): Label smoothing values, a regularization tool used to prevent the model
|
|
456
|
+
from overfitting when calculating Loss. The value range is [0.0, 1.0]. Default: ``0.0`` .
|
|
457
|
+
|
|
458
|
+
Inputs:
|
|
459
|
+
- **input** (Tensor) - :math:`(N)` or :math:`(N, C)` where `C = number of classes` or :math:`(N, C, H, W)`
|
|
460
|
+
in case of 2D Loss, or :math:`(N, C, d_1, d_2, ..., d_K)`.
|
|
461
|
+
`input` is expected to be log-probabilities, data type must be float16 or float32 or bfloat16(only supported
|
|
462
|
+
by Atlas A2 training series products).
|
|
463
|
+
- **target** (Tensor) - For class indices, tensor of shape :math:`()`, :math:`(N)` or
|
|
464
|
+
:math:`(N, d_1, d_2, ..., d_K)` , data type must be int32 or int64. For probabilities, tensor of shape
|
|
465
|
+
:math:`(N,)` , :math:`(N, C)` or :math:`(N, C, d_1, d_2, ..., d_K)` , data type must be float16 or float32
|
|
466
|
+
or bfloat16(only supported by Atlas A2 training series products).
|
|
467
|
+
|
|
468
|
+
Outputs:
|
|
469
|
+
Tensor, the data type is the same as `input` .
|
|
470
|
+
|
|
471
|
+
Supported Platforms:
|
|
472
|
+
``Ascend``
|
|
473
|
+
|
|
474
|
+
Examples:
|
|
475
|
+
>>> import mindspore as ms
|
|
476
|
+
>>> import numpy as np
|
|
477
|
+
>>> # Case 1: Indices labels
|
|
478
|
+
>>> inputs = ms.Tensor(np.random.randn(3, 5), ms.float32)
|
|
479
|
+
>>> target = ms.Tensor(np.array([1, 0, 4]), ms.int32)
|
|
480
|
+
>>> op = ms.mint.nn.CrossEntropyLoss()
|
|
481
|
+
>>> output = op(inputs, target)
|
|
482
|
+
>>> # Case 2: Probability labels
|
|
483
|
+
>>> inputs = ms.Tensor(np.random.randn(3, 5), ms.float32)
|
|
484
|
+
>>> target = ms.Tensor(np.random.randn(3, 5), ms.float32)
|
|
485
|
+
>>> op = ms.mint.nn.CrossEntropyLoss()
|
|
486
|
+
>>> output = op(inputs, target)
|
|
487
|
+
"""
|
|
488
|
+
|
|
489
|
+
def __init__(self, weight=None, ignore_index=-100, reduction='mean', label_smoothing=0.0):
|
|
490
|
+
super(CrossEntropyLoss, self).__init__()
|
|
491
|
+
self.weight = weight
|
|
492
|
+
self.ignore_index = ignore_index
|
|
493
|
+
self.reduction = reduction
|
|
494
|
+
self.label_smoothing = label_smoothing
|
|
495
|
+
|
|
496
|
+
def construct(self, input, target):
|
|
497
|
+
out = cross_entropy(input, target, self.weight, self.ignore_index, self.reduction, self.label_smoothing)
|
|
498
|
+
return out
|
|
499
|
+
|
|
259
500
|
|
|
260
501
|
class BCEWithLogitsLoss(Cell):
|
|
261
502
|
r"""
|
|
@@ -384,7 +625,7 @@ class GELU(Cell):
|
|
|
384
625
|
:align: center
|
|
385
626
|
|
|
386
627
|
Supported Platforms:
|
|
387
|
-
``Ascend``
|
|
628
|
+
``Ascend``
|
|
388
629
|
|
|
389
630
|
Examples:
|
|
390
631
|
>>> import mindspore
|
|
@@ -394,22 +635,99 @@ class GELU(Cell):
|
|
|
394
635
|
>>> gelu = mint.nn.GELU()
|
|
395
636
|
>>> output = gelu(input)
|
|
396
637
|
>>> print(output)
|
|
397
|
-
[[-1.
|
|
398
|
-
[ 1.
|
|
399
|
-
>>> gelu = mint.nn.GELU(approximate=
|
|
400
|
-
>>> # CPU not support "approximate=False", using "approximate=True" instead
|
|
638
|
+
[[-1.58655241e-01 3.99987316e+00 -0.00000000e+00]
|
|
639
|
+
[ 1.95449972e+00 -1.41860323e-06 9.0000000e+00]]
|
|
640
|
+
>>> gelu = mint.nn.GELU(approximate="tanh")
|
|
401
641
|
>>> output = gelu(input)
|
|
402
642
|
>>> print(output)
|
|
403
|
-
[[-1.
|
|
404
|
-
[ 1.
|
|
643
|
+
[[-1.58808023e-01 3.99992990e+00 -3.10779147e-21]
|
|
644
|
+
[ 1.95459759e+00 -2.29180174e-07 9.0000000e+00]]
|
|
405
645
|
"""
|
|
406
646
|
|
|
407
|
-
def __init__(self):
|
|
647
|
+
def __init__(self, approximate="none"):
|
|
408
648
|
"""Initialize GELU"""
|
|
409
649
|
super(GELU, self).__init__()
|
|
650
|
+
self.approximate = approximate
|
|
410
651
|
|
|
411
652
|
def construct(self, input):
|
|
412
|
-
return F.gelu(input)
|
|
653
|
+
return F.gelu(input, approximate=self.approximate)
|
|
654
|
+
|
|
655
|
+
|
|
656
|
+
|
|
657
|
+
class Hardtanh(Cell):
|
|
658
|
+
r"""
|
|
659
|
+
Activation function Hardtanh.
|
|
660
|
+
|
|
661
|
+
Refer to :func:`mindspore.mint.nn.functional.hardtanh` for more details.
|
|
662
|
+
|
|
663
|
+
Hardtanh Activation Function Graph:
|
|
664
|
+
|
|
665
|
+
.. image:: ../images/Hardtanh.png
|
|
666
|
+
:align: center
|
|
667
|
+
|
|
668
|
+
Supported Platforms:
|
|
669
|
+
``Ascend``
|
|
670
|
+
|
|
671
|
+
Examples:
|
|
672
|
+
>>> import mindspore
|
|
673
|
+
>>> from mindspore import Tensor, mint
|
|
674
|
+
>>> import numpy as np
|
|
675
|
+
>>> input = Tensor(np.array([-1, -2, 0, 2, 1]), mindspore.float32)
|
|
676
|
+
>>> hardtanh = mint.nn.Hardtanh(min_val=-1.0, max_val=1.0)
|
|
677
|
+
>>> output = hardtanh(x)
|
|
678
|
+
>>> print(output)
|
|
679
|
+
[-1. -1. 0. 1. 1.]
|
|
680
|
+
"""
|
|
681
|
+
|
|
682
|
+
def __init__(self, min_val=-1.0, max_val=1.0, inplace=False):
|
|
683
|
+
"""Initialize ReLU6"""
|
|
684
|
+
super(Hardtanh, self).__init__()
|
|
685
|
+
self.min_val = min_val
|
|
686
|
+
self.max_val = max_val
|
|
687
|
+
self.inplace = inplace
|
|
688
|
+
|
|
689
|
+
def construct(self, input):
|
|
690
|
+
if self.inplace:
|
|
691
|
+
return F.hardtanh_(input, self.min_val, self.max_val)
|
|
692
|
+
return F.hardtanh_op(input, self.min_val, self.max_val)
|
|
693
|
+
|
|
694
|
+
|
|
695
|
+
class ReLU6(Cell):
|
|
696
|
+
r"""
|
|
697
|
+
Activation function ReLU6.
|
|
698
|
+
|
|
699
|
+
.. warning::
|
|
700
|
+
This is an experimental API that is subject to change or deletion.
|
|
701
|
+
|
|
702
|
+
Refer to :func:`mindspore.mint.nn.functional.relu6` for more details.
|
|
703
|
+
|
|
704
|
+
ReLU6 Activation Function Graph:
|
|
705
|
+
|
|
706
|
+
.. image:: ../images/ReLU6.png
|
|
707
|
+
:align: center
|
|
708
|
+
|
|
709
|
+
Supported Platforms:
|
|
710
|
+
``Ascend``
|
|
711
|
+
|
|
712
|
+
Examples:
|
|
713
|
+
>>> import mindspore
|
|
714
|
+
>>> from mindspore import Tensor, mint
|
|
715
|
+
>>> import numpy as np
|
|
716
|
+
>>> input = Tensor(np.array([[-1.0, 4.0, -8.0], [2.0, -5.0, 9.0]]), mindspore.float32)
|
|
717
|
+
>>> relu6 = mint.nn.ReLU6()
|
|
718
|
+
>>> output = relu6(input)
|
|
719
|
+
>>> print(output)
|
|
720
|
+
[[0. 4. 0.]
|
|
721
|
+
[2. 0. 6.]]
|
|
722
|
+
"""
|
|
723
|
+
|
|
724
|
+
def __init__(self, inplace=False):
|
|
725
|
+
"""Initialize ReLU6"""
|
|
726
|
+
super(ReLU6, self).__init__()
|
|
727
|
+
self.inplace = inplace
|
|
728
|
+
|
|
729
|
+
def construct(self, input):
|
|
730
|
+
return F.relu6(input, self.inplace)
|
|
413
731
|
|
|
414
732
|
|
|
415
733
|
class Mish(Cell):
|
|
@@ -523,16 +841,388 @@ class MSELoss(Cell):
|
|
|
523
841
|
return out
|
|
524
842
|
|
|
525
843
|
|
|
844
|
+
class SmoothL1Loss(Cell):
|
|
845
|
+
r"""
|
|
846
|
+
Computes smooth L1 loss, a robust L1 loss.
|
|
847
|
+
|
|
848
|
+
Refer to :func:`mindspore.mint.nn.functional.smooth_l1_loss` for more details.
|
|
849
|
+
|
|
850
|
+
.. warning::
|
|
851
|
+
This is an experimental API that is subject to change or deletion.
|
|
852
|
+
|
|
853
|
+
Supported Platforms:
|
|
854
|
+
``Ascend``
|
|
855
|
+
|
|
856
|
+
Examples:
|
|
857
|
+
>>> import mindspore
|
|
858
|
+
>>> import numpy as np
|
|
859
|
+
>>> from mindspore import Tensor, mint
|
|
860
|
+
>>> input = Tensor(np.array([2, 2, 3]), mindspore.float32)
|
|
861
|
+
>>> target = Tensor(np.array([2, 2, 2]), mindspore.float32)
|
|
862
|
+
>>> beta = 1.0
|
|
863
|
+
>>> reduction_1 = 'none'
|
|
864
|
+
>>> loss1 = mint.nn.SmoothL1Loss(reduction=reduction_1, beta=beta)
|
|
865
|
+
>>> output = loss1(input, target)
|
|
866
|
+
>>> print(output)
|
|
867
|
+
[0. 0. 0.5]
|
|
868
|
+
>>> reduction_2 = 'mean'
|
|
869
|
+
>>> loss2 = mint.nn.SmoothL1Loss(reduction=reduction_2, beta=beta)
|
|
870
|
+
>>> output = loss2(input, target)
|
|
871
|
+
>>> print(output)
|
|
872
|
+
0.16666667
|
|
873
|
+
>>> reduction_3 = 'sum'
|
|
874
|
+
>>> loss3 = mint.nn.SmoothL1Loss(reduction=reduction_3, beta=beta)
|
|
875
|
+
>>> output = loss3(input, target)
|
|
876
|
+
>>> print(output)
|
|
877
|
+
0.5
|
|
878
|
+
"""
|
|
879
|
+
|
|
880
|
+
def __init__(self, reduction='mean', beta=1.0):
|
|
881
|
+
super(SmoothL1Loss, self).__init__()
|
|
882
|
+
self.smooth_l1_loss = ops.function.smooth_l1_loss
|
|
883
|
+
self.reduction = reduction
|
|
884
|
+
self.beta = beta
|
|
885
|
+
|
|
886
|
+
def construct(self, input, target):
|
|
887
|
+
out = self.smooth_l1_loss(input, target, self.beta, self.reduction)
|
|
888
|
+
return out
|
|
889
|
+
|
|
890
|
+
|
|
891
|
+
class BCELoss(Cell):
|
|
892
|
+
r"""
|
|
893
|
+
Compute the binary cross entropy between the true labels and predicted labels.
|
|
894
|
+
|
|
895
|
+
Set the predicted labels as :math:`x`, true labels as :math:`y`, the output loss as :math:`\ell(x, y)`.
|
|
896
|
+
The formula is as follow:
|
|
897
|
+
|
|
898
|
+
.. math::
|
|
899
|
+
L = \{l_1,\dots,l_n,\dots,l_N\}^\top, \quad
|
|
900
|
+
l_n = - w_n \left[ y_n \cdot \log x_n + (1 - y_n) \cdot \log (1 - x_n) \right]
|
|
901
|
+
|
|
902
|
+
where N is the batch size. Then,
|
|
903
|
+
|
|
904
|
+
.. math::
|
|
905
|
+
\ell(x, y) = \begin{cases}
|
|
906
|
+
L, & \text{if reduction} = \text{'none';}\\
|
|
907
|
+
\operatorname{mean}(L), & \text{if reduction} = \text{'mean';}\\
|
|
908
|
+
\operatorname{sum}(L), & \text{if reduction} = \text{'sum'.}
|
|
909
|
+
\end{cases}
|
|
910
|
+
|
|
911
|
+
.. note::
|
|
912
|
+
Note that the predicted labels should always be the output of sigmoid. Because it is a two-class
|
|
913
|
+
classification, the true labels should be numbers between 0 and 1.
|
|
914
|
+
And if :math:`x_n` is either 0 or 1, one of the log terms would be mathematically undefined in the above loss
|
|
915
|
+
equation.
|
|
916
|
+
|
|
917
|
+
.. warning::
|
|
918
|
+
This is an experimental API that is subject to change or deletion.
|
|
919
|
+
|
|
920
|
+
Args:
|
|
921
|
+
weight (Tensor, optional): A rescaling weight applied to the loss of each batch element.
|
|
922
|
+
And it must have the same shape and data type as `inputs`. Default: ``None`` .
|
|
923
|
+
reduction (str, optional): Apply specific reduction method to the output: ``'none'`` , ``'mean'`` ,
|
|
924
|
+
``'sum'`` . Default: ``'mean'`` .
|
|
925
|
+
|
|
926
|
+
- ``'none'``: no reduction will be applied.
|
|
927
|
+
- ``'mean'``: compute and return the weighted mean of elements in the output.
|
|
928
|
+
- ``'sum'``: the output elements will be summed.
|
|
929
|
+
|
|
930
|
+
Inputs:
|
|
931
|
+
- **input** (Tensor) - The input tensor with shape :math:`(N, *)` where :math:`*` means, any number
|
|
932
|
+
of additional dimensions. The data type must be float16 or float32 or bfloat16(only supported
|
|
933
|
+
by Atlas A2 training series products).
|
|
934
|
+
- **target** (Tensor) - The label tensor with shape :math:`(N, *)` where :math:`*` means, any number
|
|
935
|
+
of additional dimensions. The same shape and data type as `input`.
|
|
936
|
+
|
|
937
|
+
Outputs:
|
|
938
|
+
Tensor, has the same dtype as `input`. if `reduction` is ``'none'``, then it has the same shape as `input`.
|
|
939
|
+
Otherwise, it is a scalar Tensor.
|
|
940
|
+
|
|
941
|
+
Raises:
|
|
942
|
+
TypeError: If dtype of `input`, `target` or `weight` (if given) is not float16, float32 or bfloat16.
|
|
943
|
+
ValueError: If `reduction` is not one of ``'none'``, ``'mean'``, ``'sum'``.
|
|
944
|
+
ValueError: If shape of `input` is not the same as `target` or `weight` (if given).
|
|
945
|
+
|
|
946
|
+
Supported Platforms:
|
|
947
|
+
``Ascend``
|
|
948
|
+
|
|
949
|
+
Examples:
|
|
950
|
+
>>> import mindspore as ms
|
|
951
|
+
>>> from mindspore import nn
|
|
952
|
+
>>> import numpy as np
|
|
953
|
+
>>> weight = ms.Tensor(np.array([[1.0, 2.0, 3.0], [4.0, 3.3, 2.2]]), ms.float32)
|
|
954
|
+
>>> loss = nn.BCELoss(weight=weight, reduction='mean')
|
|
955
|
+
>>> input = ms.Tensor(np.array([[0.1, 0.2, 0.3], [0.5, 0.7, 0.9]]), ms.float32)
|
|
956
|
+
>>> target = ms.Tensor(np.array([[0, 1, 0], [0, 0, 1]]), ms.float32)
|
|
957
|
+
>>> output = loss(input, target)
|
|
958
|
+
>>> print(output)
|
|
959
|
+
1.8952923
|
|
960
|
+
"""
|
|
961
|
+
|
|
962
|
+
def __init__(self, weight=None, reduction='mean'):
|
|
963
|
+
super(BCELoss, self).__init__()
|
|
964
|
+
self.bce_loss = nn.loss.BCELoss(weight, reduction)
|
|
965
|
+
|
|
966
|
+
def construct(self, input, target):
|
|
967
|
+
return self.bce_loss(input, target)
|
|
968
|
+
|
|
969
|
+
|
|
970
|
+
class KLDivLoss(Cell):
|
|
971
|
+
r"""
|
|
972
|
+
Computes the Kullback-Leibler divergence between the `input` and the `target`.
|
|
973
|
+
|
|
974
|
+
For tensors of the same shape :math:`x` and :math:`y`,
|
|
975
|
+
the updating formulas of KLDivLoss algorithm are as follows,
|
|
976
|
+
|
|
977
|
+
.. math::
|
|
978
|
+
L(x, y) = y \cdot (\log y - x)
|
|
979
|
+
|
|
980
|
+
Then,
|
|
981
|
+
|
|
982
|
+
.. math::
|
|
983
|
+
\ell(x, y) = \begin{cases}
|
|
984
|
+
L(x, y), & \text{if reduction} = \text{'none';}\\
|
|
985
|
+
\operatorname{mean}(L(x, y)), & \text{if reduction} = \text{'mean';}\\
|
|
986
|
+
\operatorname{sum}(L(x, y)) / x.\operatorname{shape}[0], & \text{if reduction} = \text{'batchmean';}\\
|
|
987
|
+
\operatorname{sum}(L(x, y)), & \text{if reduction} = \text{'sum'.}
|
|
988
|
+
\end{cases}
|
|
989
|
+
|
|
990
|
+
where :math:`x` represents `input`, :math:`y` represents `target`, and :math:`\ell(x, y)` represents the output.
|
|
991
|
+
|
|
992
|
+
Note:
|
|
993
|
+
The output aligns with the mathematical definition of Kullback-Leibler divergence
|
|
994
|
+
only when `reduction` is set to ``'batchmean'``.
|
|
995
|
+
|
|
996
|
+
Args:
|
|
997
|
+
reduction (str, optional): Specifies the reduction to be applied to the output. Default: ``'mean'``.
|
|
998
|
+
log_target (bool, optional): Specifies whether `target` is passed in the log space. Default: ``False``.
|
|
999
|
+
|
|
1000
|
+
Inputs:
|
|
1001
|
+
- **input** (Tensor) - The input Tensor. The data type must be float16, float32 or bfloat16(only supported by
|
|
1002
|
+
Atlas A2 training series products).
|
|
1003
|
+
- **target** (Tensor) - The target Tensor which has the same type as `input`. The shapes of `target` and `input`
|
|
1004
|
+
should be broadcastable.
|
|
1005
|
+
|
|
1006
|
+
Outputs:
|
|
1007
|
+
Tensor, has the same dtype as `input`. If `reduction` is ``'none'``, then output has the shape as broadcast
|
|
1008
|
+
result of the `input` and `target`. Otherwise, it is a scalar Tensor.
|
|
1009
|
+
|
|
1010
|
+
Raises:
|
|
1011
|
+
TypeError: If neither `input` nor `target` is a Tensor.
|
|
1012
|
+
TypeError: If dtype of `input` or `target` is not float16, float32 or bfloat16.
|
|
1013
|
+
TypeError: If dtype of `target` is not the same as `input`.
|
|
1014
|
+
ValueError: If `reduction` is not one of ``'none'``, ``'mean'``, ``'sum'``, ``'batchmean'``.
|
|
1015
|
+
ValueError: If shapes of `target` and `input` can not be broadcastable.
|
|
1016
|
+
|
|
1017
|
+
Supported Platforms:
|
|
1018
|
+
``Ascend``
|
|
1019
|
+
|
|
1020
|
+
Examples:
|
|
1021
|
+
>>> import mindspore as ms
|
|
1022
|
+
>>> from mindspore import nn
|
|
1023
|
+
>>> import numpy as np
|
|
1024
|
+
>>> input = ms.Tensor(np.array([[0.5, 0.5], [0.4, 0.6]]), ms.float32)
|
|
1025
|
+
>>> target = ms.Tensor(np.array([[0., 1.], [1., 0.]]), ms.float32)
|
|
1026
|
+
>>> loss = nn.KLDivLoss(reduction='mean', log_target=False)
|
|
1027
|
+
>>> output = loss(input, target)
|
|
1028
|
+
>>> print(output)
|
|
1029
|
+
-0.225
|
|
1030
|
+
"""
|
|
1031
|
+
|
|
1032
|
+
def __init__(self, reduction='mean', log_target=False):
|
|
1033
|
+
super(KLDivLoss, self).__init__()
|
|
1034
|
+
self.reduction = reduction
|
|
1035
|
+
self.log_target = log_target
|
|
1036
|
+
|
|
1037
|
+
def construct(self, input, target):
|
|
1038
|
+
return kl_div_ext(input, target, self.reduction, self.log_target)
|
|
1039
|
+
|
|
1040
|
+
|
|
1041
|
+
class UpsamplingNearest2d(Cell):
|
|
1042
|
+
r"""
|
|
1043
|
+
Performs nearest neighbor upsampling operation.
|
|
1044
|
+
|
|
1045
|
+
This operator scale up the volumetric input with specified `size` or `scale_factor` factors, using nearest
|
|
1046
|
+
neighbor algorithm.
|
|
1047
|
+
|
|
1048
|
+
.. note::
|
|
1049
|
+
One of `size` or `scale_factor` must be given, and an error will be reported if both are specified.
|
|
1050
|
+
|
|
1051
|
+
.. warning::
|
|
1052
|
+
This is an experimental API that is subject to change or deletion.
|
|
1053
|
+
|
|
1054
|
+
Args:
|
|
1055
|
+
size (Union[tuple[int], list[int]], optional): A tuple or list of int specifying the output volumetric size.
|
|
1056
|
+
Default: ``None``.
|
|
1057
|
+
scale_factor (Union[tuple[float], list[float]], optional): A tuple or list of float specifying the upsampling
|
|
1058
|
+
factors. Default: ``None``.
|
|
1059
|
+
|
|
1060
|
+
Inputs:
|
|
1061
|
+
- **input** (Tensor) - 4D tensor of shape :math:`(N, C, H_{in}, W_{in})`.
|
|
1062
|
+
Supporting types: [uint8, float16, float32, float64].
|
|
1063
|
+
|
|
1064
|
+
Outputs:
|
|
1065
|
+
Upsampled output with the same type as `input` , whose shape is :math:`(N, C, H_{out}, W_{out})`.
|
|
1066
|
+
|
|
1067
|
+
Raises:
|
|
1068
|
+
TypeError: When `size` is not ``None`` and `size` is not list[int] or tuple[int].
|
|
1069
|
+
TypeError: When `scale_factor` is not ``None`` and `scale_factor` is not list[float] or tuple[float].
|
|
1070
|
+
TypeError: If dtype of `input` is not in [uint8, float16, float32, float64].
|
|
1071
|
+
ValueError: If any value of `size` is negative or zero when `size` is not ``None``.
|
|
1072
|
+
ValueError: If any value of `scale_factor` is negative or zero when `scale_factor` is not ``None``.
|
|
1073
|
+
ValueError: If shape of `input` is not 4D.
|
|
1074
|
+
ValueError: If both `scale_factor` and `size` are specified or neither `scale_factor` nor `size` is specified.
|
|
1075
|
+
ValueError: If size of `scale_factor` is not equal to 2 when `scale_factor` is specified.
|
|
1076
|
+
ValueError: If size of `size` is not equal to 2 when `size` is specified.
|
|
1077
|
+
|
|
1078
|
+
Supported Platforms:
|
|
1079
|
+
``Ascend``
|
|
1080
|
+
|
|
1081
|
+
Examples:
|
|
1082
|
+
>>> import numpy as np
|
|
1083
|
+
>>> from mindspore import Tensor, nn
|
|
1084
|
+
>>> from mindspore import dtype as mstype
|
|
1085
|
+
>>> inut = Tensor(np.arange(12).astype(np.float32).reshape(1, 2, 2, 3))
|
|
1086
|
+
>>> size = [4, 4]
|
|
1087
|
+
>>> net = nn.UpsamplingNearest2d(size, None)
|
|
1088
|
+
>>> output = net(inut)
|
|
1089
|
+
>>> print(output)
|
|
1090
|
+
[[[[0., 0., 1., 2.],
|
|
1091
|
+
[0., 0., 1., 2.],
|
|
1092
|
+
[3., 3., 4., 5.],
|
|
1093
|
+
[3., 3., 4., 5.]],
|
|
1094
|
+
[[6., 6., 7., 8.],
|
|
1095
|
+
[6., 6., 7., 8.],
|
|
1096
|
+
[9., 9., 10., 10.],
|
|
1097
|
+
[9., 9., 10., 10.]]]]
|
|
1098
|
+
"""
|
|
1099
|
+
|
|
1100
|
+
def __init__(self, size=None, scale_factor=None):
|
|
1101
|
+
"""Initialize UpsamplingNearest2d."""
|
|
1102
|
+
super(UpsamplingNearest2d, self).__init__()
|
|
1103
|
+
self.size = size
|
|
1104
|
+
self.scale_factor = scale_factor
|
|
1105
|
+
|
|
1106
|
+
def construct(self, input):
|
|
1107
|
+
return upsample_nearest2d_op(input, self.size, self.scale_factor)
|
|
1108
|
+
|
|
1109
|
+
|
|
1110
|
+
class UpsamplingBilinear2d(Cell):
|
|
1111
|
+
r"""
|
|
1112
|
+
Performs upsampling with trilinear interpolation across 2dims for 4dim input Tensor.
|
|
1113
|
+
|
|
1114
|
+
This operator scale up the volumetric input with specified `size` or `scale_factor` factors,
|
|
1115
|
+
using trilinear upscaling algorithm.
|
|
1116
|
+
|
|
1117
|
+
Note:
|
|
1118
|
+
One of `scale_factor` and `size` must be specified. And it is an error if both are specified.
|
|
1119
|
+
|
|
1120
|
+
.. warning::
|
|
1121
|
+
This is an experimental API that is subject to change or deletion.
|
|
1122
|
+
|
|
1123
|
+
Args:
|
|
1124
|
+
size (Union[tuple[int], list[int]], optional): A tuple or list of int specifying the output volumetric size.
|
|
1125
|
+
Default: ``None``.
|
|
1126
|
+
scale_factor (Union[tuple[float], list[float]], optional): A tuple or list of float specifying the upsampling
|
|
1127
|
+
factors. Default: ``None``.
|
|
1128
|
+
|
|
1129
|
+
Inputs:
|
|
1130
|
+
- **input** (Tensor) - 4D tensor of shape :math:`(N, C, H_{in}, W_{in})`.
|
|
1131
|
+
Supporting types: [float16, float32, float64].
|
|
1132
|
+
|
|
1133
|
+
Outputs:
|
|
1134
|
+
Upsampled output with the same type as `input` , whose shape is :math:`(N, C, H_{out}, W_{out})`.
|
|
1135
|
+
|
|
1136
|
+
Raises:
|
|
1137
|
+
TypeError: When `size` is not ``None`` and `size` is not list[int] or tuple[int].
|
|
1138
|
+
TypeError: When `scale_factor` is not ``None`` and `scale_factor` is not list[float] or tuple[float].
|
|
1139
|
+
TypeError: If dtype of `input` is not in [float16, float32, float64].
|
|
1140
|
+
ValueError: If any value of `size` is negative or zero when `size` is not ``None``.
|
|
1141
|
+
ValueError: If any value of `scale_factor` is negative or zero when `size` is not ``None``.
|
|
1142
|
+
ValueError: If shape of `input` is not 4D.
|
|
1143
|
+
ValueError: If both `scale_factor` and `size` are specified or neither `scale_factor` nor `size` is specified.
|
|
1144
|
+
ValueError: If size of `size` is not equal to 2 when `size` is specified.
|
|
1145
|
+
ValueError: If size of `scale_factor` is not equal to 2 when `scale_factor` is specified.
|
|
1146
|
+
|
|
1147
|
+
Supported Platforms:
|
|
1148
|
+
``Ascend``
|
|
1149
|
+
|
|
1150
|
+
Examples:
|
|
1151
|
+
>>> import numpy as np
|
|
1152
|
+
>>> from mindspore import Tensor, nn
|
|
1153
|
+
>>> size=[4, 5]
|
|
1154
|
+
>>> net = nn.UpsampleTrilinear2d(size, None)
|
|
1155
|
+
>>> in_x = Tensor(np.array([[[[0.1, 0.2, 0.3], [0.4, 0.5, 0.6]],
|
|
1156
|
+
>>> [[0.7, 0.8, 0.9], [1.0, 1.1, 1.2]]]]).astype(np.float32))
|
|
1157
|
+
>>> out = net(in_x)
|
|
1158
|
+
>>> print(out)
|
|
1159
|
+
[[[[0.1000, 0.1500, 0.2000, 0.2500, 0.3000],
|
|
1160
|
+
[0.2000, 0.2500, 0.3000, 0.3500, 0.4000],
|
|
1161
|
+
[0.3000, 0.3500, 0.4000, 0.4500, 0.5000],
|
|
1162
|
+
[0.4000, 0.4500, 0.5000, 0.5500, 0.6000]],
|
|
1163
|
+
[[0.7000, 0.7500, 0.8000, 0.8500, 0.9000],
|
|
1164
|
+
[0.8000, 0.8500, 0.9000, 0.9500, 1.0000],
|
|
1165
|
+
[0.9000, 0.9500, 1.0000, 1.0500, 1.1000],
|
|
1166
|
+
[1.0000, 1.0500, 1.1000, 1.1500, 1.2000]]]]
|
|
1167
|
+
"""
|
|
1168
|
+
|
|
1169
|
+
def __init__(self, size=None, scale_factor=None):
|
|
1170
|
+
"""Initialize UpsamplingBilinear2d."""
|
|
1171
|
+
super(UpsamplingBilinear2d, self).__init__()
|
|
1172
|
+
self.size = size
|
|
1173
|
+
self.scale_factor = scale_factor
|
|
1174
|
+
|
|
1175
|
+
def construct(self, input):
|
|
1176
|
+
return upsample_bilinear2d_op(input, self.size, self.scale_factor, True)
|
|
1177
|
+
|
|
1178
|
+
|
|
1179
|
+
class PixelShuffle(Cell):
|
|
1180
|
+
r"""Rearrange elements in a tensor according to an upscaling factor.
|
|
1181
|
+
|
|
1182
|
+
For details, please refer to :func:`mindspore.mint.nn.functional.pixel_shuffle`.
|
|
1183
|
+
|
|
1184
|
+
Supported Platforms:
|
|
1185
|
+
``Ascend``
|
|
1186
|
+
|
|
1187
|
+
Examples:
|
|
1188
|
+
>>> from mindspore import mint
|
|
1189
|
+
>>> pixel_shuffle = mint.nn.PixelShuffle(3)
|
|
1190
|
+
>>> input = mint.randn(1, 9, 4, 4)
|
|
1191
|
+
>>> output = pixel_shuffle(input)
|
|
1192
|
+
>>> print(output.shape())
|
|
1193
|
+
[1, 1, 12, 12]
|
|
1194
|
+
"""
|
|
1195
|
+
|
|
1196
|
+
def __init__(self, upscale_factor):
|
|
1197
|
+
super(PixelShuffle, self).__init__()
|
|
1198
|
+
self.upscale_factor = upscale_factor
|
|
1199
|
+
|
|
1200
|
+
def construct(self, input):
|
|
1201
|
+
return F.pixel_shuffle(input, self.upscale_factor)
|
|
1202
|
+
|
|
1203
|
+
|
|
526
1204
|
__all__ = [
|
|
527
1205
|
# 1
|
|
528
1206
|
'BCEWithLogitsLoss',
|
|
529
1207
|
# 2
|
|
530
|
-
|
|
1208
|
+
'PixelShuffle',
|
|
531
1209
|
# 3
|
|
532
1210
|
'Identity',
|
|
533
1211
|
# 4
|
|
534
1212
|
|
|
535
1213
|
# 5
|
|
1214
|
+
'ConstantPad1d',
|
|
1215
|
+
'ConstantPad2d',
|
|
1216
|
+
'ConstantPad3d',
|
|
1217
|
+
'ZeroPad1d',
|
|
1218
|
+
'ZeroPad2d',
|
|
1219
|
+
'ZeroPad3d',
|
|
1220
|
+
'ReflectionPad1d',
|
|
1221
|
+
'ReflectionPad2d',
|
|
1222
|
+
'ReflectionPad3d',
|
|
1223
|
+
'ReplicationPad1d',
|
|
1224
|
+
'ReplicationPad2d',
|
|
1225
|
+
'ReplicationPad3d',
|
|
536
1226
|
|
|
537
1227
|
# 6
|
|
538
1228
|
'Fold',
|
|
@@ -554,11 +1244,13 @@ __all__ = [
|
|
|
554
1244
|
# 14
|
|
555
1245
|
|
|
556
1246
|
# 15
|
|
557
|
-
|
|
1247
|
+
'Conv1d',
|
|
1248
|
+
'Conv2d',
|
|
1249
|
+
'Conv3d',
|
|
558
1250
|
# 16
|
|
559
1251
|
'LogSoftmax',
|
|
560
1252
|
# 17
|
|
561
|
-
|
|
1253
|
+
'ConvTranspose2d',
|
|
562
1254
|
# 18
|
|
563
1255
|
'PReLU',
|
|
564
1256
|
# 19
|
|
@@ -622,7 +1314,7 @@ __all__ = [
|
|
|
622
1314
|
# 47
|
|
623
1315
|
|
|
624
1316
|
# 48
|
|
625
|
-
|
|
1317
|
+
'SoftMarginLoss',
|
|
626
1318
|
# 49
|
|
627
1319
|
|
|
628
1320
|
# 50
|
|
@@ -654,7 +1346,7 @@ __all__ = [
|
|
|
654
1346
|
# 63
|
|
655
1347
|
|
|
656
1348
|
# 64
|
|
657
|
-
|
|
1349
|
+
'SyncBatchNorm',
|
|
658
1350
|
# 65
|
|
659
1351
|
|
|
660
1352
|
# 66
|
|
@@ -714,9 +1406,9 @@ __all__ = [
|
|
|
714
1406
|
# 93
|
|
715
1407
|
|
|
716
1408
|
# 94
|
|
717
|
-
|
|
1409
|
+
'AdaptiveMaxPool1d',
|
|
718
1410
|
# 95
|
|
719
|
-
|
|
1411
|
+
'AvgPool3d',
|
|
720
1412
|
# 96
|
|
721
1413
|
'AdaptiveAvgPool1d',
|
|
722
1414
|
|
|
@@ -724,11 +1416,13 @@ __all__ = [
|
|
|
724
1416
|
'AdaptiveAvgPool2d',
|
|
725
1417
|
|
|
726
1418
|
# 98
|
|
727
|
-
|
|
1419
|
+
'AvgPool1d',
|
|
728
1420
|
# 99
|
|
729
1421
|
'AvgPool2d',
|
|
730
1422
|
# 100
|
|
731
1423
|
'SELU',
|
|
1424
|
+
# 152
|
|
1425
|
+
'AdaptiveAvgPool3d',
|
|
732
1426
|
# 159
|
|
733
1427
|
'GELU',
|
|
734
1428
|
# 220
|
|
@@ -739,19 +1433,46 @@ __all__ = [
|
|
|
739
1433
|
'Hardswish',
|
|
740
1434
|
# 238
|
|
741
1435
|
'L1Loss',
|
|
1436
|
+
# 254
|
|
1437
|
+
'MaxUnpool2d',
|
|
1438
|
+
# 256
|
|
1439
|
+
'Threshold',
|
|
742
1440
|
# 267
|
|
743
1441
|
'Mish',
|
|
744
1442
|
# 258
|
|
745
1443
|
'MSELoss',
|
|
746
1444
|
# 259
|
|
747
1445
|
|
|
1446
|
+
# 294
|
|
1447
|
+
'SmoothL1Loss',
|
|
1448
|
+
|
|
1449
|
+
# 388
|
|
1450
|
+
'AdaptiveMaxPool2d',
|
|
1451
|
+
|
|
1452
|
+
# 393
|
|
1453
|
+
'Dropout2d',
|
|
1454
|
+
# 406
|
|
1455
|
+
'ELU',
|
|
1456
|
+
# 407
|
|
1457
|
+
'Flatten',
|
|
1458
|
+
# 412
|
|
1459
|
+
'Hardtanh',
|
|
1460
|
+
'ReLU6',
|
|
1461
|
+
# 413
|
|
1462
|
+
'BCELoss',
|
|
1463
|
+
# 421
|
|
1464
|
+
'Tanh',
|
|
1465
|
+
# 548
|
|
1466
|
+
'KLDivLoss',
|
|
748
1467
|
# 556
|
|
749
1468
|
'LogSigmoid',
|
|
750
|
-
|
|
1469
|
+
'Sigmoid',
|
|
751
1470
|
# 674
|
|
752
1471
|
'BatchNorm1d',
|
|
753
1472
|
# 675
|
|
754
1473
|
'BatchNorm2d',
|
|
755
1474
|
# 676
|
|
756
1475
|
'BatchNorm3d',
|
|
1476
|
+
'UpsamplingNearest2d',
|
|
1477
|
+
'UpsamplingBilinear2d',
|
|
757
1478
|
]
|