mindspore 2.3.0rc1__cp39-cp39-manylinux1_x86_64.whl → 2.3.0rc2__cp39-cp39-manylinux1_x86_64.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/__init__.py +1 -1
- mindspore/_akg/akg/utils/tbe_codegen_utils.py +13 -3
- mindspore/_c_dataengine.cpython-39-x86_64-linux-gnu.so +0 -0
- mindspore/_c_expression.cpython-39-x86_64-linux-gnu.so +0 -0
- mindspore/_checkparam.py +20 -0
- mindspore/_extends/parse/parser.py +1 -1
- mindspore/_extends/parse/standard_method.py +6 -5
- mindspore/_mindspore_offline_debug.cpython-39-x86_64-linux-gnu.so +0 -0
- mindspore/amp.py +5 -5
- mindspore/bin/cache_admin +0 -0
- mindspore/bin/cache_server +0 -0
- mindspore/boost/boost_cell_wrapper.py +1 -1
- mindspore/boost/group_loss_scale_manager.py +1 -1
- mindspore/common/__init__.py +4 -2
- mindspore/common/_register_for_recompute.py +48 -0
- mindspore/common/_stub_tensor.py +1 -0
- mindspore/common/api.py +56 -4
- mindspore/common/dtype.py +5 -3
- mindspore/common/dump.py +2 -2
- mindspore/common/hook_handle.py +51 -4
- mindspore/common/initializer.py +1 -1
- mindspore/common/jit_config.py +17 -6
- mindspore/common/parameter.py +7 -2
- mindspore/common/recompute.py +247 -0
- mindspore/common/sparse_tensor.py +2 -2
- mindspore/common/symbol.py +1 -1
- mindspore/common/tensor.py +74 -36
- mindspore/communication/__init__.py +3 -3
- mindspore/communication/management.py +30 -30
- mindspore/context.py +28 -15
- mindspore/dataset/__init__.py +5 -5
- mindspore/dataset/audio/__init__.py +2 -2
- mindspore/dataset/audio/transforms.py +51 -51
- mindspore/dataset/callback/ds_callback.py +2 -2
- mindspore/dataset/engine/cache_client.py +1 -1
- mindspore/dataset/engine/datasets.py +3 -3
- mindspore/dataset/engine/datasets_audio.py +14 -14
- mindspore/dataset/engine/datasets_standard_format.py +3 -3
- mindspore/dataset/engine/datasets_text.py +38 -38
- mindspore/dataset/engine/datasets_user_defined.py +3 -3
- mindspore/dataset/engine/datasets_vision.py +68 -68
- mindspore/dataset/text/__init__.py +3 -3
- mindspore/dataset/text/transforms.py +26 -26
- mindspore/dataset/transforms/__init__.py +1 -1
- mindspore/dataset/vision/__init__.py +3 -3
- mindspore/dataset/vision/transforms.py +92 -92
- mindspore/dataset/vision/utils.py +1 -1
- mindspore/experimental/optim/adadelta.py +2 -2
- mindspore/experimental/optim/adagrad.py +2 -2
- mindspore/experimental/optim/adam.py +2 -2
- mindspore/experimental/optim/adamax.py +2 -2
- mindspore/experimental/optim/adamw.py +2 -2
- mindspore/experimental/optim/asgd.py +2 -2
- mindspore/experimental/optim/lr_scheduler.py +24 -20
- mindspore/experimental/optim/nadam.py +2 -2
- mindspore/experimental/optim/optimizer.py +1 -1
- mindspore/experimental/optim/radam.py +2 -2
- mindspore/experimental/optim/rmsprop.py +2 -2
- mindspore/experimental/optim/rprop.py +2 -2
- mindspore/experimental/optim/sgd.py +2 -2
- mindspore/hal/stream.py +2 -0
- mindspore/include/mindapi/base/types.h +5 -0
- mindspore/lib/libdnnl.so.2 +0 -0
- mindspore/lib/libmindspore.so +0 -0
- mindspore/lib/libmindspore_backend.so +0 -0
- mindspore/lib/libmindspore_common.so +0 -0
- mindspore/lib/libmindspore_core.so +0 -0
- mindspore/lib/libmindspore_glog.so.0 +0 -0
- mindspore/lib/libmindspore_gpr.so.15 +0 -0
- mindspore/lib/libmindspore_grpc++.so.1 +0 -0
- mindspore/lib/libmindspore_grpc.so.15 +0 -0
- mindspore/lib/libmindspore_shared_lib.so +0 -0
- mindspore/lib/libopencv_core.so.4.5 +0 -0
- mindspore/lib/libopencv_imgcodecs.so.4.5 +0 -0
- mindspore/lib/libopencv_imgproc.so.4.5 +0 -0
- mindspore/lib/plugin/ascend/custom_aicpu_ops/op_impl/cpu/aicpu_kernel/impl/libcust_cpu_kernels.so +0 -0
- mindspore/lib/plugin/ascend/custom_aicpu_ops/op_impl/cpu/config/cust_aicpu_kernel.json +6 -6
- mindspore/lib/plugin/ascend/custom_aicpu_ops/op_proto/libcust_op_proto.so +0 -0
- mindspore/lib/plugin/ascend/libdvpp_utils.so +0 -0
- mindspore/lib/plugin/ascend/libmindspore_cpu_kernels.so +0 -0
- mindspore/lib/plugin/gpu/libcuda_ops.so.10 +0 -0
- mindspore/lib/plugin/gpu/libcuda_ops.so.11 +0 -0
- mindspore/lib/plugin/gpu10.1/libnccl.so.2 +0 -0
- mindspore/lib/plugin/gpu11.1/libnccl.so.2 +0 -0
- mindspore/lib/plugin/gpu11.6/libnccl.so.2 +0 -0
- mindspore/lib/plugin/libmindspore_ascend.so.2 +0 -0
- mindspore/lib/plugin/libmindspore_gpu.so.10.1 +0 -0
- mindspore/lib/plugin/libmindspore_gpu.so.11.1 +0 -0
- mindspore/lib/plugin/libmindspore_gpu.so.11.6 +0 -0
- mindspore/log.py +2 -2
- mindspore/mint/__init__.py +457 -0
- mindspore/mint/nn/__init__.py +430 -0
- mindspore/mint/nn/functional.py +424 -0
- mindspore/mint/optim/__init__.py +24 -0
- mindspore/mint/optim/adamw.py +186 -0
- mindspore/multiprocessing/__init__.py +4 -0
- mindspore/nn/__init__.py +3 -0
- mindspore/nn/cell.py +51 -47
- mindspore/nn/extend/__init__.py +29 -0
- mindspore/nn/extend/basic.py +140 -0
- mindspore/nn/extend/embedding.py +143 -0
- mindspore/nn/extend/layer/__init__.py +27 -0
- mindspore/nn/extend/layer/normalization.py +107 -0
- mindspore/nn/extend/pooling.py +117 -0
- mindspore/nn/generator.py +297 -0
- mindspore/nn/layer/basic.py +109 -1
- mindspore/nn/layer/container.py +2 -2
- mindspore/nn/layer/conv.py +6 -6
- mindspore/nn/layer/embedding.py +1 -1
- mindspore/nn/layer/normalization.py +21 -43
- mindspore/nn/layer/padding.py +4 -0
- mindspore/nn/optim/ada_grad.py +2 -2
- mindspore/nn/optim/adadelta.py +1 -1
- mindspore/nn/optim/adafactor.py +1 -1
- mindspore/nn/optim/adam.py +7 -7
- mindspore/nn/optim/adamax.py +2 -2
- mindspore/nn/optim/adasum.py +2 -2
- mindspore/nn/optim/asgd.py +2 -2
- mindspore/nn/optim/ftrl.py +1 -1
- mindspore/nn/optim/lamb.py +3 -3
- mindspore/nn/optim/lars.py +1 -1
- mindspore/nn/optim/lazyadam.py +2 -2
- mindspore/nn/optim/momentum.py +2 -2
- mindspore/nn/optim/optimizer.py +2 -2
- mindspore/nn/optim/proximal_ada_grad.py +2 -2
- mindspore/nn/optim/rmsprop.py +2 -2
- mindspore/nn/optim/rprop.py +2 -2
- mindspore/nn/optim/sgd.py +2 -2
- mindspore/nn/optim/thor.py +2 -2
- mindspore/nn/wrap/cell_wrapper.py +9 -9
- mindspore/nn/wrap/grad_reducer.py +5 -5
- mindspore/ops/_grad_experimental/grad_comm_ops.py +4 -2
- mindspore/ops/_vmap/vmap_grad_nn_ops.py +41 -2
- mindspore/ops/_vmap/vmap_math_ops.py +27 -8
- mindspore/ops/_vmap/vmap_nn_ops.py +66 -8
- mindspore/ops/auto_generate/cpp_create_prim_instance_helper.py +73 -1
- mindspore/ops/auto_generate/gen_arg_dtype_cast.py +12 -3
- mindspore/ops/auto_generate/gen_arg_handler.py +24 -0
- mindspore/ops/auto_generate/gen_extend_func.py +274 -0
- mindspore/ops/auto_generate/gen_ops_def.py +889 -22
- mindspore/ops/auto_generate/gen_ops_prim.py +3541 -253
- mindspore/ops/auto_generate/pyboost_inner_prim.py +282 -0
- mindspore/ops/composite/multitype_ops/_compile_utils.py +2 -1
- mindspore/ops/composite/multitype_ops/_constexpr_utils.py +9 -0
- mindspore/ops/extend/__init__.py +9 -1
- mindspore/ops/extend/array_func.py +134 -27
- mindspore/ops/extend/math_func.py +3 -3
- mindspore/ops/extend/nn_func.py +363 -2
- mindspore/ops/function/__init__.py +19 -2
- mindspore/ops/function/array_func.py +463 -439
- mindspore/ops/function/clip_func.py +7 -18
- mindspore/ops/function/grad/grad_func.py +5 -5
- mindspore/ops/function/linalg_func.py +4 -4
- mindspore/ops/function/math_func.py +260 -243
- mindspore/ops/function/nn_func.py +825 -62
- mindspore/ops/function/random_func.py +73 -4
- mindspore/ops/function/sparse_unary_func.py +1 -1
- mindspore/ops/function/vmap_func.py +1 -1
- mindspore/ops/functional.py +2 -2
- mindspore/ops/op_info_register.py +1 -31
- mindspore/ops/operations/__init__.py +2 -3
- mindspore/ops/operations/_grad_ops.py +2 -107
- mindspore/ops/operations/_inner_ops.py +5 -5
- mindspore/ops/operations/_sequence_ops.py +2 -2
- mindspore/ops/operations/array_ops.py +11 -233
- mindspore/ops/operations/comm_ops.py +32 -32
- mindspore/ops/operations/custom_ops.py +7 -89
- mindspore/ops/operations/manually_defined/ops_def.py +329 -4
- mindspore/ops/operations/math_ops.py +13 -163
- mindspore/ops/operations/nn_ops.py +9 -316
- mindspore/ops/operations/random_ops.py +1 -1
- mindspore/ops/operations/sparse_ops.py +3 -3
- mindspore/ops/primitive.py +2 -2
- mindspore/ops_generate/arg_dtype_cast.py +12 -3
- mindspore/ops_generate/arg_handler.py +24 -0
- mindspore/ops_generate/gen_ops_inner_prim.py +2 -0
- mindspore/ops_generate/gen_pyboost_func.py +13 -6
- mindspore/ops_generate/pyboost_utils.py +2 -17
- mindspore/parallel/__init__.py +3 -2
- mindspore/parallel/_auto_parallel_context.py +106 -1
- mindspore/parallel/_parallel_serialization.py +34 -2
- mindspore/parallel/_utils.py +16 -0
- mindspore/parallel/algo_parameter_config.py +4 -4
- mindspore/parallel/checkpoint_transform.py +249 -77
- mindspore/parallel/cluster/process_entity/_api.py +1 -1
- mindspore/parallel/parameter_broadcast.py +1 -1
- mindspore/parallel/shard.py +1 -1
- mindspore/profiler/parser/ascend_analysis/fwk_cann_parser.py +1 -0
- mindspore/profiler/parser/ascend_analysis/profiler_info_parser.py +17 -5
- mindspore/profiler/parser/ascend_msprof_exporter.py +3 -3
- mindspore/profiler/parser/ascend_msprof_generator.py +10 -3
- mindspore/profiler/parser/ascend_op_generator.py +26 -9
- mindspore/profiler/parser/ascend_timeline_generator.py +7 -4
- mindspore/profiler/parser/profiler_info.py +11 -1
- mindspore/profiler/profiling.py +13 -5
- mindspore/rewrite/api/node.py +12 -12
- mindspore/rewrite/api/symbol_tree.py +11 -11
- mindspore/run_check/_check_version.py +1 -1
- mindspore/safeguard/rewrite_obfuscation.py +2 -2
- mindspore/train/amp.py +4 -4
- mindspore/train/anf_ir_pb2.py +8 -2
- mindspore/train/callback/_backup_and_restore.py +2 -2
- mindspore/train/callback/_callback.py +4 -4
- mindspore/train/callback/_checkpoint.py +2 -2
- mindspore/train/callback/_early_stop.py +2 -2
- mindspore/train/callback/_landscape.py +4 -4
- mindspore/train/callback/_loss_monitor.py +2 -2
- mindspore/train/callback/_on_request_exit.py +2 -2
- mindspore/train/callback/_reduce_lr_on_plateau.py +2 -2
- mindspore/train/callback/_summary_collector.py +2 -2
- mindspore/train/callback/_time_monitor.py +2 -2
- mindspore/train/dataset_helper.py +8 -3
- mindspore/train/loss_scale_manager.py +2 -2
- mindspore/train/metrics/metric.py +3 -3
- mindspore/train/mind_ir_pb2.py +22 -17
- mindspore/train/model.py +15 -15
- mindspore/train/serialization.py +18 -18
- mindspore/train/summary/summary_record.py +7 -7
- mindspore/train/train_thor/convert_utils.py +3 -3
- mindspore/version.py +1 -1
- {mindspore-2.3.0rc1.dist-info → mindspore-2.3.0rc2.dist-info}/METADATA +1 -1
- {mindspore-2.3.0rc1.dist-info → mindspore-2.3.0rc2.dist-info}/RECORD +226 -212
- {mindspore-2.3.0rc1.dist-info → mindspore-2.3.0rc2.dist-info}/WHEEL +0 -0
- {mindspore-2.3.0rc1.dist-info → mindspore-2.3.0rc2.dist-info}/entry_points.txt +0 -0
- {mindspore-2.3.0rc1.dist-info → mindspore-2.3.0rc2.dist-info}/top_level.txt +0 -0
|
@@ -99,7 +99,7 @@ class WithLossCell(Cell):
|
|
|
99
99
|
>>> from mindspore import Tensor, nn
|
|
100
100
|
>>> import numpy as np
|
|
101
101
|
>>> # Define the network structure of LeNet5. Refer to
|
|
102
|
-
>>> # https://gitee.com/mindspore/docs/blob/
|
|
102
|
+
>>> # https://gitee.com/mindspore/docs/blob/master/docs/mindspore/code/lenet.py
|
|
103
103
|
>>> net = LeNet5()
|
|
104
104
|
>>> loss_fn = nn.SoftmaxCrossEntropyWithLogits(sparse=False)
|
|
105
105
|
>>> net_with_criterion = nn.WithLossCell(net, loss_fn)
|
|
@@ -132,7 +132,7 @@ class WithLossCell(Cell):
|
|
|
132
132
|
Examples:
|
|
133
133
|
>>> from mindspore import nn
|
|
134
134
|
>>> # Define the network structure of LeNet5. Refer to
|
|
135
|
-
>>> # https://gitee.com/mindspore/docs/blob/
|
|
135
|
+
>>> # https://gitee.com/mindspore/docs/blob/master/docs/mindspore/code/lenet.py
|
|
136
136
|
>>> net = LeNet5()
|
|
137
137
|
>>> loss_fn = nn.SoftmaxCrossEntropyWithLogits(sparse=False)
|
|
138
138
|
>>> net_with_criterion = nn.WithLossCell(net, loss_fn)
|
|
@@ -175,7 +175,7 @@ class WithGradCell(Cell):
|
|
|
175
175
|
>>> import mindspore as ms
|
|
176
176
|
>>> from mindspore import nn
|
|
177
177
|
>>> # Defined a network without loss function, taking LeNet5 as an example.
|
|
178
|
-
>>> # Refer to https://gitee.com/mindspore/docs/blob/
|
|
178
|
+
>>> # Refer to https://gitee.com/mindspore/docs/blob/master/docs/mindspore/code/lenet.py
|
|
179
179
|
>>> net = LeNet5()
|
|
180
180
|
>>> loss_fn = nn.SoftmaxCrossEntropyWithLogits()
|
|
181
181
|
>>> grad_net = nn.WithGradCell(net, loss_fn)
|
|
@@ -346,7 +346,7 @@ class TrainOneStepCell(Cell):
|
|
|
346
346
|
Examples:
|
|
347
347
|
>>> import mindspore.nn as nn
|
|
348
348
|
>>> # Define the network structure of LeNet5. Refer to
|
|
349
|
-
>>> # https://gitee.com/mindspore/docs/blob/
|
|
349
|
+
>>> # https://gitee.com/mindspore/docs/blob/master/docs/mindspore/code/lenet.py
|
|
350
350
|
>>> net = LeNet5()
|
|
351
351
|
>>> loss_fn = nn.SoftmaxCrossEntropyWithLogits()
|
|
352
352
|
>>> optim = nn.Momentum(net.trainable_params(), learning_rate=0.1, momentum=0.9)
|
|
@@ -586,7 +586,7 @@ class MicroBatchInterleaved(Cell):
|
|
|
586
586
|
Examples:
|
|
587
587
|
>>> import mindspore.nn as nn
|
|
588
588
|
>>> # Define the network structure of LeNet5. Refer to
|
|
589
|
-
>>> # https://gitee.com/mindspore/docs/blob/
|
|
589
|
+
>>> # https://gitee.com/mindspore/docs/blob/master/docs/mindspore/code/lenet.py
|
|
590
590
|
>>> net = LeNet5()
|
|
591
591
|
>>> net = nn.MicroBatchInterleaved(net, 2)
|
|
592
592
|
"""
|
|
@@ -634,7 +634,7 @@ class PipelineCell(Cell):
|
|
|
634
634
|
Examples:
|
|
635
635
|
>>> import mindspore.nn as nn
|
|
636
636
|
>>> # Define the network structure of LeNet5. Refer to
|
|
637
|
-
>>> # https://gitee.com/mindspore/docs/blob/
|
|
637
|
+
>>> # https://gitee.com/mindspore/docs/blob/master/docs/mindspore/code/lenet.py
|
|
638
638
|
>>> net = LeNet5()
|
|
639
639
|
>>> net = nn.PipelineCell(net, 4)
|
|
640
640
|
"""
|
|
@@ -685,7 +685,7 @@ class GradAccumulationCell(Cell):
|
|
|
685
685
|
Examples:
|
|
686
686
|
>>> import mindspore.nn as nn
|
|
687
687
|
>>> # Define the network structure of LeNet5. Refer to
|
|
688
|
-
>>> # https://gitee.com/mindspore/docs/blob/
|
|
688
|
+
>>> # https://gitee.com/mindspore/docs/blob/master/docs/mindspore/code/lenet.py
|
|
689
689
|
>>> net = LeNet5()
|
|
690
690
|
>>> net = nn.GradAccumulationCell(net, 4)
|
|
691
691
|
"""
|
|
@@ -811,7 +811,7 @@ class VirtualDatasetCellTriple(Cell):
|
|
|
811
811
|
Examples:
|
|
812
812
|
>>> import mindspore.nn as nn
|
|
813
813
|
>>> # Define the network structure of LeNet5. Refer to
|
|
814
|
-
>>> # https://gitee.com/mindspore/docs/blob/
|
|
814
|
+
>>> # https://gitee.com/mindspore/docs/blob/master/docs/mindspore/code/lenet.py
|
|
815
815
|
>>> net = LeNet5()
|
|
816
816
|
>>> net = nn.VirtualDatasetCellTriple(net)
|
|
817
817
|
"""
|
|
@@ -854,7 +854,7 @@ class WithEvalCell(Cell):
|
|
|
854
854
|
Examples:
|
|
855
855
|
>>> import mindspore.nn as nn
|
|
856
856
|
>>> # Define a forward network without loss function, taking LeNet5 as an example.
|
|
857
|
-
>>> # Refer to https://gitee.com/mindspore/docs/blob/
|
|
857
|
+
>>> # Refer to https://gitee.com/mindspore/docs/blob/master/docs/mindspore/code/lenet.py
|
|
858
858
|
>>> net = LeNet5()
|
|
859
859
|
>>> loss_fn = nn.SoftmaxCrossEntropyWithLogits()
|
|
860
860
|
>>> eval_net = nn.WithEvalCell(net, loss_fn)
|
|
@@ -335,14 +335,14 @@ class DistributedGradReducer(Cell):
|
|
|
335
335
|
|
|
336
336
|
For the Ascend devices, users need to prepare the rank table, set rank_id and device_id.
|
|
337
337
|
Please see the `rank table Startup
|
|
338
|
-
<https://www.mindspore.cn/tutorials/experts/en/
|
|
338
|
+
<https://www.mindspore.cn/tutorials/experts/en/master/parallel/rank_table.html>`_
|
|
339
339
|
for more details.
|
|
340
340
|
|
|
341
341
|
For the GPU devices, users need to prepare the host file and mpi, please see the `mpirun Startup
|
|
342
|
-
<https://www.mindspore.cn/tutorials/experts/en/
|
|
342
|
+
<https://www.mindspore.cn/tutorials/experts/en/master/parallel/mpirun.html>`_ .
|
|
343
343
|
|
|
344
344
|
For the CPU device, users need to write a dynamic cluster startup script, please see the `Dynamic Cluster
|
|
345
|
-
Startup <https://www.mindspore.cn/tutorials/experts/en/
|
|
345
|
+
Startup <https://www.mindspore.cn/tutorials/experts/en/master/parallel/dynamic_cluster.html>`_ .
|
|
346
346
|
|
|
347
347
|
This example should be run with multiple devices.
|
|
348
348
|
|
|
@@ -509,11 +509,11 @@ class PipelineGradReducer(Cell):
|
|
|
509
509
|
|
|
510
510
|
For the Ascend devices, users need to prepare the rank table, set rank_id and device_id.
|
|
511
511
|
Please see the `rank table Startup
|
|
512
|
-
<https://www.mindspore.cn/tutorials/experts/en/
|
|
512
|
+
<https://www.mindspore.cn/tutorials/experts/en/master/parallel/rank_table.html>`_
|
|
513
513
|
for more details.
|
|
514
514
|
|
|
515
515
|
For the GPU devices, users need to prepare the host file and mpi, please see the `mpirun Startup
|
|
516
|
-
<https://www.mindspore.cn/tutorials/experts/en/
|
|
516
|
+
<https://www.mindspore.cn/tutorials/experts/en/master/parallel/mpirun.html>`_ .
|
|
517
517
|
|
|
518
518
|
This example should be run with multiple devices.
|
|
519
519
|
|
|
@@ -92,7 +92,8 @@ def get_bprop_send(self):
|
|
|
92
92
|
"""Generate bprop for Send."""
|
|
93
93
|
shape = self.get_attr_dict()["shape"]
|
|
94
94
|
dtype = self.get_attr_dict()["dtype"]
|
|
95
|
-
|
|
95
|
+
tag = self.get_attr_dict()["sr_tag"]
|
|
96
|
+
send_grad = Receive(tag, self.rank, shape, dtype, self.group_back)
|
|
96
97
|
virtual_input = Tensor(0.0, dtype)
|
|
97
98
|
|
|
98
99
|
def bprop(x, out, dout):
|
|
@@ -105,7 +106,8 @@ def get_bprop_send(self):
|
|
|
105
106
|
@bprop_getters.register(Receive)
|
|
106
107
|
def get_bprop_receive(self):
|
|
107
108
|
"""Generate bprop for Receive."""
|
|
108
|
-
|
|
109
|
+
tag = self.get_attr_dict()["sr_tag"]
|
|
110
|
+
receive_grad = Send(tag, self.rank, self.group_back)
|
|
109
111
|
receive_grad.add_prim_attr("shape", self.shape)
|
|
110
112
|
depend = P.Depend()
|
|
111
113
|
cast = P.Cast()
|
|
@@ -711,8 +711,7 @@ def get_grid_sampler_grad_vmap_rule(prim, axis_size):
|
|
|
711
711
|
|
|
712
712
|
|
|
713
713
|
@vmap_rules_getters.register(G.UpsampleNearest3DGrad)
|
|
714
|
-
|
|
715
|
-
def get_upsample_grad_vmap_rule(prim, axis_size):
|
|
714
|
+
def get_upsample_nearesst3d_grad_vmap_rule(prim, axis_size):
|
|
716
715
|
"""VmapRule for `UpsampleNearest3DGrad` and `UpsampleTrilinear3DGrad`."""
|
|
717
716
|
cdhw_reverse_index = -4
|
|
718
717
|
|
|
@@ -746,6 +745,46 @@ def get_upsample_grad_vmap_rule(prim, axis_size):
|
|
|
746
745
|
return vmap_rule
|
|
747
746
|
|
|
748
747
|
|
|
748
|
+
@vmap_rules_getters.register(G.UpsampleTrilinear3DGrad)
|
|
749
|
+
def get_upsample_trilinear3d_grad_vmap_rule(prim, axis_size):
|
|
750
|
+
"""VmapRule for `UpsampleNearest3DGrad` and `UpsampleTrilinear3DGrad`."""
|
|
751
|
+
cdhw_reverse_index = -4
|
|
752
|
+
|
|
753
|
+
def vmap_rule(grad_bdim, isize_bdim, osize_bdim, scales_bdim, align_corners_bdim):
|
|
754
|
+
is_all_none, result = vmap_general_preprocess(prim, grad_bdim)
|
|
755
|
+
if is_all_none:
|
|
756
|
+
return result
|
|
757
|
+
|
|
758
|
+
grad, grad_dim = grad_bdim
|
|
759
|
+
grad = _bdim_at_front(grad, grad_dim, axis_size)
|
|
760
|
+
grad_shape = F.shape(grad)
|
|
761
|
+
input_shape = (-1,) + grad_shape[cdhw_reverse_index:]
|
|
762
|
+
grad = F.reshape(grad, input_shape)
|
|
763
|
+
real_in_shape = F.shape(grad)
|
|
764
|
+
|
|
765
|
+
isize, isize_dim = isize_bdim
|
|
766
|
+
osize, osize_dim = osize_bdim
|
|
767
|
+
scales, scales_dim = scales_bdim
|
|
768
|
+
align_corners, align_corners_dim = align_corners_bdim
|
|
769
|
+
check_args = [isize_dim, osize_dim, scales_dim, align_corners_dim]
|
|
770
|
+
is_all_none = True
|
|
771
|
+
for arg in check_args:
|
|
772
|
+
is_all_none = is_all_none and arg is None
|
|
773
|
+
if not is_all_none:
|
|
774
|
+
_raise_value_error(
|
|
775
|
+
"The source axis of `input_size`, `output_size` and `scales` must be None, but got {0}, {1} and {2}."
|
|
776
|
+
.format(isize_dim, osize_dim, scales_dim))
|
|
777
|
+
# update batch dimension of input_size
|
|
778
|
+
new_isize = (real_in_shape[0],) + isize[1:]
|
|
779
|
+
|
|
780
|
+
out = prim(grad, new_isize, osize, scales, align_corners)
|
|
781
|
+
out_shape = F.shape(out)
|
|
782
|
+
real_out_shape = grad_shape[:cdhw_reverse_index] + out_shape[cdhw_reverse_index:]
|
|
783
|
+
out = F.reshape(out, real_out_shape)
|
|
784
|
+
return out, 0
|
|
785
|
+
return vmap_rule
|
|
786
|
+
|
|
787
|
+
|
|
749
788
|
@vmap_rules_getters.register(G.LogSoftmaxGrad)
|
|
750
789
|
def get_log_softmax_grad_vmap_rule(prim_func, axis_size):
|
|
751
790
|
"""VmapRule for 'LogSoftmaxGrad' operation."""
|
|
@@ -19,6 +19,7 @@ from __future__ import absolute_import
|
|
|
19
19
|
import mindspore.numpy as mnp
|
|
20
20
|
from mindspore.ops import operations as P
|
|
21
21
|
from mindspore.ops import functional as F
|
|
22
|
+
from mindspore.ops.auto_generate import MatMulExt
|
|
22
23
|
from mindspore.ops.primitive import _primexpr
|
|
23
24
|
from mindspore.common import Tensor
|
|
24
25
|
from mindspore.ops.operations import math_ops
|
|
@@ -290,29 +291,47 @@ def get_matmul_vmap_rule(prim, axis_size):
|
|
|
290
291
|
"""VmapRule for `*MatMul` operation."""
|
|
291
292
|
if isinstance(prim, str):
|
|
292
293
|
prim = Primitive(prim)
|
|
293
|
-
transpose_a = False
|
|
294
|
-
transpose_b = False
|
|
295
|
-
else:
|
|
296
|
-
transpose_a = prim.transpose_a
|
|
297
|
-
transpose_b = prim.transpose_b
|
|
298
|
-
batch_matmul = P.BatchMatMul(transpose_a, transpose_b)
|
|
299
294
|
|
|
300
|
-
def vmap_rule(a_bdim, b_bdim):
|
|
301
|
-
is_all_none, result = vmap_general_preprocess(prim, a_bdim, b_bdim)
|
|
295
|
+
def vmap_rule(a_bdim, b_bdim, trans_a_bdim, trans_b_bdim):
|
|
296
|
+
is_all_none, result = vmap_general_preprocess(prim, a_bdim, b_bdim, trans_a_bdim, trans_b_bdim)
|
|
302
297
|
if is_all_none:
|
|
303
298
|
return result
|
|
304
299
|
|
|
305
300
|
a, a_dim = a_bdim
|
|
306
301
|
b, b_dim = b_bdim
|
|
302
|
+
trans_a, _ = trans_a_bdim
|
|
303
|
+
trans_b, _ = trans_b_bdim
|
|
307
304
|
a = _bdim_at_front(a, a_dim, axis_size)
|
|
308
305
|
b = _bdim_at_front(b, b_dim, axis_size)
|
|
309
306
|
|
|
307
|
+
batch_matmul = P.BatchMatMul(trans_a, trans_b)
|
|
310
308
|
out = batch_matmul(a, b)
|
|
311
309
|
return out, 0
|
|
312
310
|
|
|
313
311
|
return vmap_rule
|
|
314
312
|
|
|
315
313
|
|
|
314
|
+
@vmap_rules_getters.register(MatMulExt)
|
|
315
|
+
def get_matmul_ext_vmap_rule(prim, axis_size):
|
|
316
|
+
"""VmapRule for `*MatMulExt` operation."""
|
|
317
|
+
if isinstance(prim, str):
|
|
318
|
+
prim = Primitive(prim)
|
|
319
|
+
|
|
320
|
+
def vmap_rule(a_bdim, b_bdim):
|
|
321
|
+
is_all_none, result = vmap_general_preprocess(prim, a_bdim, b_bdim)
|
|
322
|
+
if is_all_none:
|
|
323
|
+
return result
|
|
324
|
+
|
|
325
|
+
a, _ = a_bdim
|
|
326
|
+
b, _ = b_bdim
|
|
327
|
+
|
|
328
|
+
matmul_ext = MatMulExt()
|
|
329
|
+
out = matmul_ext(a, b)
|
|
330
|
+
return out, 0
|
|
331
|
+
|
|
332
|
+
return vmap_rule
|
|
333
|
+
|
|
334
|
+
|
|
316
335
|
@vmap_rules_getters.register(P.math_ops.MatrixSolve)
|
|
317
336
|
def get_matrix_solve_vmap_rule(prim, axis_size):
|
|
318
337
|
"""VmapRule for `*MatMul` operation."""
|
|
@@ -30,6 +30,7 @@ from mindspore.ops._vmap.vmap_base import vmap_rules_getters, vmap_general_prepr
|
|
|
30
30
|
_vmap_clone_prim, _get_reduce_batch_axis
|
|
31
31
|
from mindspore.ops.primitive import Primitive
|
|
32
32
|
from mindspore.ops.auto_generate.gen_arg_handler import Format
|
|
33
|
+
from mindspore.ops.auto_generate import Embedding
|
|
33
34
|
|
|
34
35
|
|
|
35
36
|
@vmap_rules_getters.register(P.ApplyAdaMax)
|
|
@@ -1936,11 +1937,18 @@ def get_grid_sampler_vmap_rule(prim, axis_size):
|
|
|
1936
1937
|
return vmap_rule
|
|
1937
1938
|
|
|
1938
1939
|
|
|
1940
|
+
@vmap_rules_getters.register(NN.UpsampleNearest1D)
|
|
1941
|
+
@vmap_rules_getters.register(NN.UpsampleNearest2D)
|
|
1939
1942
|
@vmap_rules_getters.register(NN.UpsampleNearest3D)
|
|
1940
|
-
@vmap_rules_getters.register(NN.UpsampleTrilinear3D)
|
|
1941
1943
|
def get_upsample_nearest_3d_vmap_rule(prim, axis_size):
|
|
1942
|
-
"""VmapRule for `
|
|
1943
|
-
|
|
1944
|
+
"""VmapRule for `UpsampleNearest1D`, `UpsampleNearest2D` and `UpsampleNearest3D`."""
|
|
1945
|
+
prim_name = prim.name
|
|
1946
|
+
if prim_name == "UpsampleNearest1D":
|
|
1947
|
+
reverse_index = -2
|
|
1948
|
+
elif prim_name == "UpsampleNearest2D":
|
|
1949
|
+
reverse_index = -3
|
|
1950
|
+
else:
|
|
1951
|
+
reverse_index = -4
|
|
1944
1952
|
|
|
1945
1953
|
def vmap_rule(x_bdim, size_bdim, scales_bdim):
|
|
1946
1954
|
is_all_none, result = vmap_general_preprocess(prim, x_bdim, size_bdim,
|
|
@@ -1954,16 +1962,56 @@ def get_upsample_nearest_3d_vmap_rule(prim, axis_size):
|
|
|
1954
1962
|
scales, scales_dim = scales_bdim
|
|
1955
1963
|
if size_dim is not None or scales_dim is not None:
|
|
1956
1964
|
_raise_value_error(
|
|
1957
|
-
"
|
|
1958
|
-
.format(size_dim, scales_dim))
|
|
1965
|
+
"For {0}, the source axis of `output_size` and `scales` must be None,"
|
|
1966
|
+
" but got {1} and {2}.".format(prim_name, size_dim, scales_dim))
|
|
1959
1967
|
|
|
1960
1968
|
x_shape = F.shape(x)
|
|
1961
|
-
input_shape = (-1,) + x_shape[
|
|
1969
|
+
input_shape = (-1,) + x_shape[reverse_index:]
|
|
1962
1970
|
x = F.reshape(x, input_shape)
|
|
1963
1971
|
out = prim(x, size, scales)
|
|
1964
1972
|
out_shape = F.shape(out)
|
|
1965
|
-
return_shape = x_shape[:
|
|
1966
|
-
|
|
1973
|
+
return_shape = x_shape[:reverse_index] + out_shape[reverse_index:]
|
|
1974
|
+
out = F.reshape(out, return_shape)
|
|
1975
|
+
return out, 0
|
|
1976
|
+
|
|
1977
|
+
return vmap_rule
|
|
1978
|
+
|
|
1979
|
+
|
|
1980
|
+
@vmap_rules_getters.register(NN.UpsampleLinear1D)
|
|
1981
|
+
@vmap_rules_getters.register(NN.UpsampleBilinear2D)
|
|
1982
|
+
@vmap_rules_getters.register(NN.UpsampleTrilinear3D)
|
|
1983
|
+
def get_upsample_linear_vmap_rule(prim, axis_size):
|
|
1984
|
+
"""VmapRule for `UpsampleLinear1D`, `UpsampleBilinear2D` and `UpsampleTrilinear3D`."""
|
|
1985
|
+
prim_name = prim.name
|
|
1986
|
+
if prim_name == "UpsampleLinear1D":
|
|
1987
|
+
reverse_index = -2
|
|
1988
|
+
elif prim_name == "UpsampleBilinear2D":
|
|
1989
|
+
reverse_index = -3
|
|
1990
|
+
else:
|
|
1991
|
+
reverse_index = -4
|
|
1992
|
+
|
|
1993
|
+
def vmap_rule(x_bdim, size_bdim, scales_bdim, align_corners_bdim):
|
|
1994
|
+
is_all_none, result = vmap_general_preprocess(prim, x_bdim, size_bdim,
|
|
1995
|
+
scales_bdim, align_corners_bdim)
|
|
1996
|
+
if is_all_none:
|
|
1997
|
+
return result
|
|
1998
|
+
|
|
1999
|
+
x, x_dim = x_bdim
|
|
2000
|
+
x = _bdim_at_front(x, x_dim, axis_size)
|
|
2001
|
+
size, size_dim = size_bdim
|
|
2002
|
+
scales, scales_dim = scales_bdim
|
|
2003
|
+
align_corners, align_corners_dim = align_corners_bdim
|
|
2004
|
+
if size_dim is not None or scales_dim is not None or align_corners_dim is not None:
|
|
2005
|
+
_raise_value_error(
|
|
2006
|
+
"For {0}, the source axis of `output_size`, `scales` and `align_corners`must"
|
|
2007
|
+
"be None, but got {1} and {2}.".format(prim_name, size_dim, scales_dim))
|
|
2008
|
+
|
|
2009
|
+
x_shape = F.shape(x)
|
|
2010
|
+
input_shape = (-1,) + x_shape[reverse_index:]
|
|
2011
|
+
x = F.reshape(x, input_shape)
|
|
2012
|
+
out = prim(x, size, scales, align_corners)
|
|
2013
|
+
out_shape = F.shape(out)
|
|
2014
|
+
return_shape = x_shape[:reverse_index] + out_shape[reverse_index:]
|
|
1967
2015
|
out = F.reshape(out, return_shape)
|
|
1968
2016
|
return out, 0
|
|
1969
2017
|
|
|
@@ -2130,6 +2178,16 @@ def get_elu_vmap_rule(prim, axis_size):
|
|
|
2130
2178
|
return vmap_rule
|
|
2131
2179
|
|
|
2132
2180
|
|
|
2181
|
+
@vmap_rules_getters.register(Embedding)
|
|
2182
|
+
def get_embedding_vmap_rule(prim, axis_size):
|
|
2183
|
+
"""VmapRule for Embedding operations."""
|
|
2184
|
+
if isinstance(prim, str):
|
|
2185
|
+
prim_name = prim
|
|
2186
|
+
else:
|
|
2187
|
+
prim_name = prim.name
|
|
2188
|
+
raise RuntimeError(f"THe {prim_name} does not support vmap.")
|
|
2189
|
+
|
|
2190
|
+
|
|
2133
2191
|
# Unary vmap
|
|
2134
2192
|
get_unop_vmap_rule = vmap_rules_getters.register(P.ReLU)(get_unop_vmap_rule)
|
|
2135
2193
|
get_unop_vmap_rule = vmap_rules_getters.register(P.ReLU6)(get_unop_vmap_rule)
|
|
@@ -17,18 +17,25 @@
|
|
|
17
17
|
from mindspore.common import dtype as mstype
|
|
18
18
|
|
|
19
19
|
op_args_default_value = {
|
|
20
|
+
"AdamWeightDecayExt": {"amsgrad": False, "maximize": False},
|
|
20
21
|
"AdamWeightDecay": {"use_locking": False},
|
|
21
22
|
"AddExt": {"alpha": 1},
|
|
22
23
|
"ApplyCamePart2": {"sum_r": None, "global_shape": None},
|
|
23
24
|
"ApplyCamePart3": {"global_shape": None, "use_first_moment": False},
|
|
24
25
|
"ApplyCamePart4": {"global_shape": None},
|
|
25
26
|
"ApplyRotaryPosEmb": {"cos_format": 0},
|
|
27
|
+
"ArgMaxExt": {"dim": None, "keepdim": False},
|
|
26
28
|
"Argmax": {"axis": -1, "output_type": mstype.int32},
|
|
27
29
|
"ArgMaxWithValue": {"axis": 0, "keep_dims": False},
|
|
28
30
|
"Argmin": {"axis": -1, "output_type": mstype.int32},
|
|
29
31
|
"ArgMinWithValue": {"axis": 0, "keep_dims": False},
|
|
32
|
+
"AvgPool2DGrad": {"padding": 0, "ceil_mode": False, "count_include_pad": True, "divisor_override": None},
|
|
33
|
+
"AvgPool2D": {"padding": 0, "ceil_mode": False, "count_include_pad": True, "divisor_override": None},
|
|
30
34
|
"AvgPoolGrad": {"kernel_size": 1, "strides": 1, "pad_mode": 'VALID', "data_format": 'NCHW'},
|
|
31
35
|
"AvgPool": {"kernel_size": 1, "strides": 1, "pad_mode": 'VALID', "data_format": 'NCHW'},
|
|
36
|
+
"BatchMatMul": {"transpose_a": False, "transpose_b": False},
|
|
37
|
+
"BatchNormExt": {"training": False, "momentum": 0.1, "epsilon": 1e-5},
|
|
38
|
+
"BatchNormGradExt": {"training": False, "eps": 1e-5},
|
|
32
39
|
"BatchNormGradGrad": {"is_training": False, "epsilon": 1e-5, "data_format": 'NCHW'},
|
|
33
40
|
"BatchNormGrad": {"is_training": False, "epsilon": 1e-5, "data_format": 'NCHW'},
|
|
34
41
|
"BatchNormGradWithActivation": {"is_training": False, "epsilon": 1e-5, "data_format": 'NCHW'},
|
|
@@ -40,26 +47,45 @@ op_args_default_value = {
|
|
|
40
47
|
"CeLU": {"alpha": 1.0},
|
|
41
48
|
"CholeskyInverse": {"upper": False},
|
|
42
49
|
"Cholesky": {"upper": False},
|
|
50
|
+
"Chunk": {"dim": 0},
|
|
51
|
+
"ClampScalar": {"min": None, "max": None},
|
|
52
|
+
"ClampTensor": {"min": None, "max": None},
|
|
43
53
|
"Concat": {"axis": 0},
|
|
54
|
+
"ConstantPadND": {"value": 0.0},
|
|
55
|
+
"ConvolutionGrad": {"bias": None, "stride": 1, "padding": 0, "dilation": 1, "transposed": False, "output_padding": 0, "groups": 1, "output_mask": ()},
|
|
56
|
+
"Convolution": {"bias": None, "stride": 1, "padding": 0, "dilation": 1, "transposed": False, "output_padding": 0, "groups": 1},
|
|
44
57
|
"Correlate": {"mode": 'valid'},
|
|
45
58
|
"CumProd": {"exclusive": False, "reverse": False},
|
|
46
59
|
"CumSum": {"exclusive": False, "reverse": False},
|
|
47
60
|
"DCT": {"axis": -1, "norm": 'BACKWARD', "forward": True, "grad": False},
|
|
61
|
+
"Dense": {"bias": None},
|
|
48
62
|
"Diagonal": {"offset": 0, "dim1": 0, "dim2": 1},
|
|
63
|
+
"DivMod": {"rounding_mode": None},
|
|
64
|
+
"DropoutExt": {"p": 0.5, "seed": 0, "offset": 0},
|
|
49
65
|
"Dropout": {"keep_prob": 0.5, "Seed0": 0, "Seed1": 0},
|
|
50
66
|
"Eig": {"compute_v": False},
|
|
51
67
|
"Elu": {"alpha": 1.0},
|
|
68
|
+
"EmbeddingDenseBackward": {"padding_idx": None, "scale_grad_by_freq": False},
|
|
69
|
+
"Embedding": {"padding_idx": None, "max_norm": None, "norm_type": 2.0, "scale_grad_by_freq": False},
|
|
52
70
|
"ExtractImagePatches": {"padding": 'VALID'},
|
|
71
|
+
"FFNExt": {"expertTokens": None, "bias1": None, "bias2": None, "scale": None, "offset": None, "deqScale1": None, "deqScale2": None, "antiquant_scale1": None, "antiquant_scale2": None, "antiquant_offset1": None, "antiquant_offset2": None, "activation": 'fastgelu', "inner_precise": 0},
|
|
53
72
|
"FFT2": {"s": None, "dim": (-2, -1), "norm": None},
|
|
54
73
|
"FFT": {"n": None, "dim": -1, "norm": None},
|
|
55
74
|
"FFTWithSize": {"norm": 'backward', "onesided": True, "signal_sizes": ()},
|
|
56
75
|
"FFTN": {"s": None, "dim": None, "norm": None},
|
|
57
76
|
"FFTShift": {"dim": None},
|
|
77
|
+
"FillScalar": {"dtype": None},
|
|
78
|
+
"FillTensor": {"dtype": None},
|
|
79
|
+
"FlashAttentionScoreGrad": {"pse_shift": None, "drop_mask": None, "padding_mask": None, "atten_mask": None, "softmax_max": None, "softmax_sum": None, "softmax_in": None, "attention_in": None, "prefix": None, "actual_seq_qlen": None, "actual_seq_kvlen": None, "keep_prob": 1.0, "scale_value": 1.0, "pre_tokens": 65536, "next_tokens": 65536, "inner_precise": 1, "input_layout": 'BSH', "sparse_mode": 0},
|
|
80
|
+
"FlashAttentionScore": {"real_shift": None, "drop_mask": None, "padding_mask": None, "attn_mask": None, "prefix": None, "actual_seq_qlen": None, "actual_seq_kvlen": None, "keep_prob": 1.0, "scale_value": 1.0, "pre_tokens": 2147483647, "next_tokens": 2147483647, "inner_precise": 0, "input_layout": 'BSH', "sparse_mode": 0},
|
|
81
|
+
"FlattenExt": {"start_dim": 0, "end_dim": -1},
|
|
58
82
|
"Gather": {"batch_dims": 0},
|
|
59
83
|
"GridSampler2DGrad": {"interpolation_mode": 'bilinear', "padding_mode": 'zeros', "align_corners": False},
|
|
60
84
|
"GridSampler2D": {"interpolation_mode": 'bilinear', "padding_mode": 'zeros', "align_corners": False},
|
|
61
85
|
"GridSampler3DGrad": {"interpolation_mode": 'bilinear', "padding_mode": 'zeros', "align_corners": False},
|
|
62
86
|
"GridSampler3D": {"interpolation_mode": 'bilinear', "padding_mode": 'zeros', "align_corners": False},
|
|
87
|
+
"GroupNormGrad": {"dx_is_require": True, "dgamma_is_require": True, "dbeta_is_require": True},
|
|
88
|
+
"GroupNorm": {"weight": None, "bias": None, "eps": 1e-5},
|
|
63
89
|
"HShrinkGrad": {"lambd": 0.5},
|
|
64
90
|
"HShrink": {"lambd": 0.5},
|
|
65
91
|
"IFFT2": {"s": None, "dim": (-2, -1), "norm": None},
|
|
@@ -68,28 +94,44 @@ op_args_default_value = {
|
|
|
68
94
|
"IFFTShift": {"dim": None},
|
|
69
95
|
"IRFFTGrad": {"n": None, "dim": -1, "norm": None},
|
|
70
96
|
"IRFFT": {"n": None, "dim": -1, "norm": None},
|
|
97
|
+
"LayerNormExt": {"weight": None, "bias": None, "eps": 1e-5},
|
|
71
98
|
"LayerNormGradGrad": {"begin_norm_axis": 1, "begin_params_axis": 1},
|
|
72
99
|
"LayerNormGrad": {"begin_norm_axis": 1, "begin_params_axis": 1},
|
|
73
100
|
"LayerNormGradV3": {"begin_norm_axis": 1, "begin_params_axis": 1},
|
|
74
101
|
"LayerNorm": {"begin_norm_axis": 1, "begin_params_axis": 1, "epsilon": 1e-7},
|
|
75
102
|
"LayerNormV3": {"begin_norm_axis": 1, "begin_params_axis": 1, "epsilon": 1e-7},
|
|
103
|
+
"LeakyReLUExt": {"negative_slope": 0.01},
|
|
104
|
+
"LeakyReLUGradExt": {"negative_slope": 0.01, "is_result": False},
|
|
105
|
+
"LinSpaceExt": {"dtype": None},
|
|
76
106
|
"LogSoftmaxGrad": {"axis": -1},
|
|
77
107
|
"LogSoftmax": {"axis": -1},
|
|
78
108
|
"LogitGrad": {"eps": -1.0},
|
|
79
109
|
"Logit": {"eps": -1.0},
|
|
110
|
+
"MatMul": {"transpose_a": False, "transpose_b": False},
|
|
111
|
+
"MaxPoolGradWithIndices": {"strides": None, "pads": 0, "dilation": (1, 1), "ceil_mode": False, "argmax_type": mstype.int64},
|
|
112
|
+
"MaxPoolGradWithMask": {"strides": None, "pads": 0, "dilation": (1, 1), "ceil_mode": False, "argmax_type": mstype.int64},
|
|
113
|
+
"MaxPoolWithIndices": {"strides": None, "pads": 0, "dilation": (1, 1), "ceil_mode": False, "argmax_type": mstype.int64},
|
|
114
|
+
"MaxPoolWithMask": {"strides": None, "pads": 0, "dilation": (1, 1), "ceil_mode": False, "argmax_type": mstype.int64},
|
|
80
115
|
"MaximumGradGrad": {"grad_x": True, "grad_y": True},
|
|
81
116
|
"MaximumGrad": {"grad_x": True, "grad_y": True},
|
|
117
|
+
"MeanExt": {"axis": None, "keep_dims": False, "dtype": None},
|
|
82
118
|
"MinimumGrad": {"grad_x": True, "grad_y": True},
|
|
119
|
+
"MoeFinalizeRouting": {"x2": None, "bias": None, "scales": None, "expanded_row_idx": None, "expanded_expert_idx": None},
|
|
83
120
|
"NanToNum": {"nan": None, "posinf": None, "neginf": None},
|
|
84
121
|
"NLLLossGrad": {"reduction": 'mean', "ignore_index": -100},
|
|
85
122
|
"NLLLoss": {"reduction": 'mean', "ignore_index": -100},
|
|
123
|
+
"Norm": {"ord": None, "dim": None, "keepdim": False, "dtype": None},
|
|
124
|
+
"OneHotExt": {"axis": -1},
|
|
86
125
|
"OneHot": {"axis": -1},
|
|
126
|
+
"OnesLikeExt": {"dtype": None},
|
|
127
|
+
"Ones": {"dtype": None},
|
|
128
|
+
"ProdExt": {"axis": None, "keep_dims": False, "dtype": None},
|
|
87
129
|
"PromptKVCache": {"align_mode": 'LEFT'},
|
|
88
130
|
"Qr": {"full_matrices": False},
|
|
89
131
|
"QuantBatchMatmul": {"offset": None, "bias": None, "transpose_x1": False, "transpose_x2": False, "dtype": mstype.float16},
|
|
90
132
|
"RandpermV2": {"seed": 0, "offset": 0, "dtype": mstype.int64},
|
|
91
133
|
"Range": {"maxlen": 1000000},
|
|
92
|
-
"ReduceAll": {"axis":
|
|
134
|
+
"ReduceAll": {"axis": None, "keep_dims": False},
|
|
93
135
|
"ReduceAny": {"axis": (), "keep_dims": False},
|
|
94
136
|
"ReduceMax": {"axis": (), "keep_dims": False},
|
|
95
137
|
"ReduceMean": {"axis": (), "keep_dims": False},
|
|
@@ -97,10 +139,12 @@ op_args_default_value = {
|
|
|
97
139
|
"ReduceProd": {"axis": (), "keep_dims": False},
|
|
98
140
|
"ReduceStd": {"axis": [], "unbiased": True, "keep_dims": False},
|
|
99
141
|
"ReduceSum": {"axis": (), "keep_dims": False, "skip_mode": False},
|
|
142
|
+
"RepeatInterleave": {"axis": None, "output_size": None},
|
|
100
143
|
"ResizeBicubicGrad": {"align_corners": False, "half_pixel_centers": False},
|
|
101
144
|
"ResizeBicubic": {"align_corners": False, "half_pixel_centers": False},
|
|
102
145
|
"ResizeBilinearGrad": {"align_corners": False, "half_pixel_centers": False},
|
|
103
146
|
"ResizeBilinearV2": {"align_corners": False, "half_pixel_centers": False},
|
|
147
|
+
"ResizeD": {"coordinate_transformation_mode": 'align_corners'},
|
|
104
148
|
"ResizeLinear1DGrad": {"coordinate_transformation_mode": 'align_corners'},
|
|
105
149
|
"ResizeLinear1D": {"coordinate_transformation_mode": 'align_corners'},
|
|
106
150
|
"ResizeNearestNeighborGrad": {"align_corners": False, "half_pixel_centers": False},
|
|
@@ -113,21 +157,49 @@ op_args_default_value = {
|
|
|
113
157
|
"SequenceConcat": {"axis": 0},
|
|
114
158
|
"SoftmaxBackward": {"dim": -1},
|
|
115
159
|
"Softmax": {"axis": -1},
|
|
160
|
+
"SoftplusExt": {"beta": 1, "threshold": 20},
|
|
161
|
+
"SoftplusGradExt": {"beta": 1, "threshold": 20},
|
|
116
162
|
"SolveTriangular": {"trans": 0, "lower": False, "unit_diagonal": False},
|
|
117
163
|
"Split": {"axis": 0, "output_num": 1},
|
|
164
|
+
"SplitTensor": {"axis": 0},
|
|
165
|
+
"SplitWithSize": {"axis": 0},
|
|
166
|
+
"StackExt": {"dim": 0},
|
|
118
167
|
"StridedSlice": {"begin_mask": 0, "end_mask": 0, "ellipsis_mask": 0, "new_axis_mask": 0, "shrink_axis_mask": 0},
|
|
119
168
|
"SubExt": {"alpha": 1},
|
|
169
|
+
"SumExt": {"dim": None, "keepdim": False, "dtype": None},
|
|
170
|
+
"TopkExt": {"dim": -1, "largest": True, "sorted": True},
|
|
171
|
+
"Tril": {"diagonal": 0},
|
|
172
|
+
"Triu": {"diagonal": 0},
|
|
120
173
|
"TupleToTensor": {"dtype": None},
|
|
174
|
+
"UpsampleBilinear2DGrad": {"output_size": None, "scales": None, "align_corners": False},
|
|
175
|
+
"UpsampleBilinear2D": {"output_size": None, "scales": None, "align_corners": False},
|
|
176
|
+
"UpsampleLinear1DGrad": {"output_size": None, "scales": None, "align_corners": False},
|
|
177
|
+
"UpsampleLinear1D": {"output_size": None, "scales": None, "align_corners": False},
|
|
178
|
+
"UpsampleNearest1DGrad": {"output_size": None, "scales": None},
|
|
179
|
+
"UpsampleNearest1D": {"output_size": None, "scales": None},
|
|
180
|
+
"UpsampleNearest2DGrad": {"output_size": None, "scales": None},
|
|
181
|
+
"UpsampleNearest2D": {"output_size": None, "scales": None},
|
|
182
|
+
"UpsampleNearest3DGrad": {"output_size": None, "scales": None},
|
|
183
|
+
"UpsampleNearest3D": {"output_size": None, "scales": None},
|
|
184
|
+
"UpsampleTrilinear3DGrad": {"output_size": None, "scales": None, "align_corners": False},
|
|
185
|
+
"UpsampleTrilinear3D": {"output_size": None, "scales": None, "align_corners": False},
|
|
121
186
|
"WeightQuantBatchMatmul": {"antiquant_offset": None, "quant_scale": None, "quant_offset": None, "bias": None, "transpose_x": False, "transpose_weight": False, "antiquant_group_size": 0},
|
|
187
|
+
"ZerosLikeExt": {"dtype": None},
|
|
188
|
+
"Zeros": {"dtype": None},
|
|
122
189
|
}
|
|
123
190
|
|
|
124
191
|
op_labels = {
|
|
192
|
+
"AdamWeightDecayExt": {"side_effect_mem": True},
|
|
125
193
|
"AdamWeightDecay": {"side_effect_mem": True},
|
|
126
194
|
"AssignAdd": {"side_effect_mem": True},
|
|
127
195
|
"Assign": {"side_effect_mem": True},
|
|
128
196
|
"DecoderKVCache": {"side_effect_mem": True},
|
|
197
|
+
"DropoutExt": {"side_effect_hidden": True},
|
|
198
|
+
"DropoutGenMaskExt": {"side_effect_hidden": True},
|
|
129
199
|
"Dropout": {"side_effect_hidden": True},
|
|
200
|
+
"Embedding": {"side_effect_mem": True},
|
|
130
201
|
"Log": {"cust_aicpu": 'Log', "base": -1.0, "scale": 1.0, "shift": 0.0},
|
|
131
202
|
"PromptKVCache": {"side_effect_mem": True},
|
|
132
203
|
"ReshapeAndCache": {"side_effect_mem": True},
|
|
204
|
+
"ResizeD": {"mode": 'linear'},
|
|
133
205
|
}
|
|
@@ -20,17 +20,25 @@ import mindspore as ms
|
|
|
20
20
|
from mindspore import ops
|
|
21
21
|
from mindspore.common.tensor import Tensor
|
|
22
22
|
from mindspore.ops.operations._sequence_ops import TensorToScalar, TensorToTuple
|
|
23
|
-
from mindspore.ops_generate.gen_ops_inner_prim import
|
|
23
|
+
from mindspore.ops_generate.gen_ops_inner_prim import TupleToList
|
|
24
24
|
from mindspore._c_expression import OpDtype
|
|
25
25
|
|
|
26
26
|
tensor_to_tuple_ = TensorToTuple()
|
|
27
|
-
list_to_tuple = ListToTuple()
|
|
28
27
|
tuple_to_list = TupleToList()
|
|
29
28
|
|
|
29
|
+
|
|
30
30
|
def int_to_float(data):
|
|
31
31
|
return float(data)
|
|
32
32
|
|
|
33
33
|
|
|
34
|
+
def list_to_tuple(data):
|
|
35
|
+
# tuple() currently does not support Any from JIT Fallback.
|
|
36
|
+
res = ()
|
|
37
|
+
for element in data:
|
|
38
|
+
res += (element,)
|
|
39
|
+
return res
|
|
40
|
+
|
|
41
|
+
|
|
34
42
|
def scalar_to_tuple(data):
|
|
35
43
|
return (data,)
|
|
36
44
|
|
|
@@ -61,6 +69,7 @@ def tuple_to_tensor(data):
|
|
|
61
69
|
def list_to_tensor(data):
|
|
62
70
|
return ops.tuple_to_array(list_to_tuple(data))
|
|
63
71
|
|
|
72
|
+
|
|
64
73
|
# There will be some problems in using OpDtype.xxx directly in GRAPH_MODE, so convert it to int.
|
|
65
74
|
# type
|
|
66
75
|
DT_TYPE_VAL = int(OpDtype.DT_TYPE)
|
|
@@ -243,6 +252,6 @@ def type_it(op_name, arg_name, data, src_type, dst_type):
|
|
|
243
252
|
dst_type = int(dst_type)
|
|
244
253
|
if not is_instance_in(data, src_type) and not is_instance_of(data, dst_type):
|
|
245
254
|
support_list = get_support_dtype_list(src_type, dst_type)
|
|
246
|
-
raise TypeError(f"For '{op_name}', the type of '{arg_name}' should be one of '[{support_list}]', "
|
|
255
|
+
raise TypeError(f"For '{op_name}', the type of '{arg_name}' should be one of '[{support_list}]', "
|
|
247
256
|
f"but got {type(data)}.")
|
|
248
257
|
return do_type_cast(data, dst_type)
|
|
@@ -79,6 +79,30 @@ def to_dilations(op_name, arg_name, dilation):
|
|
|
79
79
|
raise ValueError(arg_invalid_info(op_name, arg_name, dilation))
|
|
80
80
|
|
|
81
81
|
|
|
82
|
+
def to_output_padding(op_name, arg_name, output_padding):
|
|
83
|
+
"""
|
|
84
|
+
convert output_padding: int/tuple[int*4] -> tuple[int*2].
|
|
85
|
+
"""
|
|
86
|
+
if isinstance(output_padding, int):
|
|
87
|
+
return (output_padding, output_padding)
|
|
88
|
+
if isinstance(output_padding, (tuple, list)):
|
|
89
|
+
if len(output_padding) == 4:
|
|
90
|
+
return (output_padding[2], output_padding[3])
|
|
91
|
+
return output_padding
|
|
92
|
+
raise ValueError(arg_invalid_info(op_name, arg_name, output_padding))
|
|
93
|
+
|
|
94
|
+
|
|
95
|
+
def to_2d_paddings(op_name, arg_name, pad):
|
|
96
|
+
"""
|
|
97
|
+
convert paddings: int -> tuple[int*2].
|
|
98
|
+
"""
|
|
99
|
+
if isinstance(pad, int):
|
|
100
|
+
return (pad,) * 2
|
|
101
|
+
if isinstance(pad, (tuple, list)):
|
|
102
|
+
return pad
|
|
103
|
+
raise ValueError(arg_invalid_info(op_name, arg_name, pad))
|
|
104
|
+
|
|
105
|
+
|
|
82
106
|
def to_paddings(op_name, arg_name, pad):
|
|
83
107
|
"""
|
|
84
108
|
convert paddings: int -> tuple[int*4].
|