diff --git a/mindspore/ccsrc/backend/kernel_compiler/tbe/tbe_kernel_build.cc b/mindspore/ccsrc/backend/kernel_compiler/tbe/tbe_kernel_build.cc index 6c845e6fff..a0731a5313 100644 --- a/mindspore/ccsrc/backend/kernel_compiler/tbe/tbe_kernel_build.cc +++ b/mindspore/ccsrc/backend/kernel_compiler/tbe/tbe_kernel_build.cc @@ -99,8 +99,8 @@ constexpr auto kJDynamicIndex = "dynamic_index"; bool IsNeedChangeDefaultFormat(const CNodePtr &cnode) { MS_EXCEPTION_IF_NULL(cnode); - if (AnfAlgo::HasNodeAttr("io_format", cnode->cast())) { - auto attr = AnfAlgo::GetNodeAttr(cnode, "io_format"); + if (AnfAlgo::HasNodeAttr(kAttrFormat, cnode->cast())) { + auto attr = AnfAlgo::GetNodeAttr(cnode, kAttrFormat); return attr == kOpFormat_NCDHW; } return false; diff --git a/mindspore/ccsrc/backend/optimizer/ascend/enhancer/add_attr_for_3d_graph.cc b/mindspore/ccsrc/backend/optimizer/ascend/enhancer/add_attr_for_3d_graph.cc index f07f1d314d..e9c0a0c4c7 100644 --- a/mindspore/ccsrc/backend/optimizer/ascend/enhancer/add_attr_for_3d_graph.cc +++ b/mindspore/ccsrc/backend/optimizer/ascend/enhancer/add_attr_for_3d_graph.cc @@ -39,7 +39,7 @@ const AnfNodePtr AddIoFormatAttrFor3DGraph::Process(const FuncGraphPtr &func_gra auto formats = AnfAlgo::GetAllOutputFormats(node); if (std::any_of(formats.begin(), formats.end(), [](const std::string &format) { return k3DFormatSet.find(format) != k3DFormatSet.end(); })) { - AnfAlgo::SetNodeAttr("io_format", MakeValue(kOpFormat_NCDHW), node); + AnfAlgo::SetNodeAttr(kAttrFormat, MakeValue(kOpFormat_NCDHW), node); } return node; } diff --git a/mindspore/ops/_op_impl/tbe/apply_momentum.py b/mindspore/ops/_op_impl/tbe/apply_momentum.py index 11a7037e2c..677f171a6d 100644 --- a/mindspore/ops/_op_impl/tbe/apply_momentum.py +++ b/mindspore/ops/_op_impl/tbe/apply_momentum.py @@ -47,6 +47,14 @@ apply_momentum_op_info = TBERegOp("ApplyMomentum") \ DataType.F32_Default, DataType.F32_C1HWNCoC0, DataType.F32_C1HWNCoC0) \ .dtype_format(DataType.F32_FracZ, DataType.F32_FracZ, DataType.F32_Default, DataType.F32_FracZ, DataType.F32_Default, DataType.F32_FracZ, DataType.F32_FracZ) \ + .dtype_format(DataType.F16_NDC1HWC0, DataType.F16_NDC1HWC0, DataType.F16_Default, DataType.F16_NDC1HWC0, + DataType.F16_Default, DataType.F16_NDC1HWC0, DataType.F16_NDC1HWC0) \ + .dtype_format(DataType.F16_FRACTAL_Z_3D, DataType.F16_FRACTAL_Z_3D, DataType.F16_Default, DataType.F16_FRACTAL_Z_3D, + DataType.F16_Default, DataType.F16_FRACTAL_Z_3D, DataType.F16_FRACTAL_Z_3D) \ + .dtype_format(DataType.F32_NDC1HWC0, DataType.F32_NDC1HWC0, DataType.F32_Default, DataType.F32_NDC1HWC0, + DataType.F32_Default, DataType.F32_NDC1HWC0, DataType.F32_NDC1HWC0) \ + .dtype_format(DataType.F32_FRACTAL_Z_3D, DataType.F32_FRACTAL_Z_3D, DataType.F32_Default, DataType.F32_FRACTAL_Z_3D, + DataType.F32_Default, DataType.F32_FRACTAL_Z_3D, DataType.F32_FRACTAL_Z_3D) \ .get_op_info() diff --git a/mindspore/ops/_op_impl/tbe/sigmoid_cross_entropy_with_logits.py b/mindspore/ops/_op_impl/tbe/sigmoid_cross_entropy_with_logits.py index 61c81a8a99..cf8688a75f 100644 --- a/mindspore/ops/_op_impl/tbe/sigmoid_cross_entropy_with_logits.py +++ b/mindspore/ops/_op_impl/tbe/sigmoid_cross_entropy_with_logits.py @@ -30,6 +30,8 @@ sigmoid_cross_entropy_with_logits_op_info = TBERegOp("SigmoidCrossEntropyWithLog .dtype_format(DataType.F16_5HD, DataType.F16_5HD, DataType.F16_5HD) \ .dtype_format(DataType.F32_Default, DataType.F32_Default, DataType.F32_Default) \ .dtype_format(DataType.F32_5HD, DataType.F32_5HD, DataType.F32_5HD) \ + .dtype_format(DataType.F16_NDC1HWC0, DataType.F16_NDC1HWC0, DataType.F16_NDC1HWC0) \ + .dtype_format(DataType.F32_NDC1HWC0, DataType.F32_NDC1HWC0, DataType.F32_NDC1HWC0) \ .get_op_info() diff --git a/mindspore/ops/_op_impl/tbe/sigmoid_cross_entropy_with_logits_grad.py b/mindspore/ops/_op_impl/tbe/sigmoid_cross_entropy_with_logits_grad.py index cc2a29353d..30753bc12f 100644 --- a/mindspore/ops/_op_impl/tbe/sigmoid_cross_entropy_with_logits_grad.py +++ b/mindspore/ops/_op_impl/tbe/sigmoid_cross_entropy_with_logits_grad.py @@ -29,8 +29,10 @@ sigmoid_cross_entropy_with_logits_grad_op_info = TBERegOp("SigmoidCrossEntropyWi .output(0, "gradient", False, "required", "all") \ .dtype_format(DataType.F16_Default, DataType.F16_Default, DataType.F16_Default, DataType.F16_Default) \ .dtype_format(DataType.F16_5HD, DataType.F16_5HD, DataType.F16_5HD, DataType.F16_5HD) \ + .dtype_format(DataType.F16_NDC1HWC0, DataType.F16_NDC1HWC0, DataType.F16_NDC1HWC0, DataType.F16_NDC1HWC0) \ .dtype_format(DataType.F32_Default, DataType.F32_Default, DataType.F32_Default, DataType.F32_Default) \ .dtype_format(DataType.F32_5HD, DataType.F32_5HD, DataType.F32_5HD, DataType.F32_5HD) \ + .dtype_format(DataType.F32_NDC1HWC0, DataType.F32_NDC1HWC0, DataType.F32_NDC1HWC0, DataType.F32_NDC1HWC0) \ .get_op_info() diff --git a/mindspore/ops/_op_impl/tbe/strided_slice_d.py b/mindspore/ops/_op_impl/tbe/strided_slice_d.py index e008e6f3d7..b9d94ec874 100644 --- a/mindspore/ops/_op_impl/tbe/strided_slice_d.py +++ b/mindspore/ops/_op_impl/tbe/strided_slice_d.py @@ -33,12 +33,8 @@ strided_slice_d_op_info = TBERegOp("StridedSlice") \ .attr("shrink_axis_mask", "required", "int", "all") \ .input(0, "x", False, "required", "all") \ .output(0, "y", False, "required", "all") \ - .dtype_format(DataType.BOOL_Default, DataType.BOOL_Default) \ - .dtype_format(DataType.I8_Default, DataType.I8_Default) \ - .dtype_format(DataType.U8_Default, DataType.U8_Default) \ - .dtype_format(DataType.I32_Default, DataType.I32_Default) \ - .dtype_format(DataType.F16_Default, DataType.F16_Default) \ - .dtype_format(DataType.F32_Default, DataType.F32_Default) \ + .op_pattern("dynamicFormat") \ + .dtype_format(DataType.None_None, DataType.None_None) \ .get_op_info() diff --git a/mindspore/ops/_op_impl/tbe/trans_data.py b/mindspore/ops/_op_impl/tbe/trans_data.py index 44f2af1c42..59f4c6e6e1 100644 --- a/mindspore/ops/_op_impl/tbe/trans_data.py +++ b/mindspore/ops/_op_impl/tbe/trans_data.py @@ -151,6 +151,8 @@ trans_data_op_info = TBERegOp("TransData") \ .dtype_format(DataType.F32_FRACTAL_Z_3D, DataType.F32_DHWCN) \ .dtype_format(DataType.F32_NDC1HWC0, DataType.F32_NDHWC) \ .dtype_format(DataType.F32_NDHWC, DataType.F32_NDC1HWC0) \ + .dtype_format(DataType.F32_NDC1HWC0, DataType.F32_NCDHW) \ + .dtype_format(DataType.F32_NCDHW, DataType.F32_NDC1HWC0) \ .get_op_info() diff --git a/mindspore/ops/operations/nn_ops.py b/mindspore/ops/operations/nn_ops.py index d8b1a1c7b3..e1bef3a467 100644 --- a/mindspore/ops/operations/nn_ops.py +++ b/mindspore/ops/operations/nn_ops.py @@ -3783,7 +3783,7 @@ class BCEWithLogitsLoss(PrimitiveWithInfer): for i, v in enumerate(reversed_pos_shape): if v not in (reversed_target[i], 1): raise ValueError(f"For {self.name}, shapes can not broadcast. " - f"predict: {tuple(predict)}, weight shape {tuple(pos_weight)}.") + f"predict: {tuple(predict)}, pos_weight shape {tuple(pos_weight)}.") if self.reduction in ('mean', 'sum'): shape = [] diff --git a/tests/st/ops/ascend/test_dynamic_gru_v2.py b/tests/st/ops/ascend/test_dynamic_gru_v2.py index 6b59465e0e..67eef756f8 100644 --- a/tests/st/ops/ascend/test_dynamic_gru_v2.py +++ b/tests/st/ops/ascend/test_dynamic_gru_v2.py @@ -13,6 +13,7 @@ # limitations under the License. # ============================================================================ import numpy as np +import pytest import mindspore.context as context import mindspore.nn as nn @@ -31,6 +32,10 @@ class DynamicGRUV2(nn.Cell): return self.dynamic_gru(x, weight_i, weight_h, bias_i, bias_h, None, init_h) +@pytest.mark.level0 +@pytest.mark.env_onecard +@pytest.mark.platform_arm_ascend_training +@pytest.mark.platform_x86_ascend_training def test_dynamic_gru_v2(): x = Tensor(np.random.rand(2, 8, 64).astype(np.float16)) weight_i = Tensor(np.random.rand(64, 48).astype(np.float16)) @@ -40,4 +45,4 @@ def test_dynamic_gru_v2(): init_h = Tensor(np.random.rand(8, 16).astype(np.float16)) gru_net = DynamicGRUV2() output = gru_net(x, weight_i, weight_h, bias_i, bias_h, init_h) - print(output) + assert output[0].shape == (2, 8, 16)