diff --git a/mindspore/ccsrc/backend/optimizer/ascend/ir_fission/bn_split.cc b/mindspore/ccsrc/backend/optimizer/ascend/ir_fission/bn_split.cc index 15d6101d15..5762e18268 100644 --- a/mindspore/ccsrc/backend/optimizer/ascend/ir_fission/bn_split.cc +++ b/mindspore/ccsrc/backend/optimizer/ascend/ir_fission/bn_split.cc @@ -163,7 +163,7 @@ AnfNodePtr CreateValueNodeOfDeviceNumReciprocal(const FuncGraphPtr &graph, const } auto device_num = AnfAlgo::GetNodeAttr(sync_bn_cnode, kDeviceNum); MS_LOG(INFO) << "device_num value: " << device_num; - float device_num_reciprocal = 1.0 / device_num; + const float device_num_reciprocal = 1.0 / device_num; std::vector device_num_shape = {}; auto device_num_reciprocal_tensor = std::make_shared(kNumberTypeFloat32, device_num_shape); diff --git a/mindspore/ccsrc/backend/optimizer/ascend/mindir/avg_pool_grad_unify_mindir.cc b/mindspore/ccsrc/backend/optimizer/ascend/mindir/avg_pool_grad_unify_mindir.cc index bb08950612..3e099715e4 100644 --- a/mindspore/ccsrc/backend/optimizer/ascend/mindir/avg_pool_grad_unify_mindir.cc +++ b/mindspore/ccsrc/backend/optimizer/ascend/mindir/avg_pool_grad_unify_mindir.cc @@ -50,6 +50,10 @@ int64_t windowed_output_size(int64_t input_size, int64_t ksize, int64_t stride, int64_t output = 0; *pad_before = 0; *pad_after = 0; + if (stride == 0) { + MS_LOG(EXCEPTION) << "The stride of AvgPoolGrad should not be 0."; + return 0; + } if (pad_mode == PadMode::VALID) { output = (input_size - ksize + stride) / stride; } else if (pad_mode == PadMode::SAME) { @@ -120,8 +124,13 @@ ValueNodePtr CreateMeanMatrixValueNode(const FuncGraphPtr &func_graph, const std auto output_size = std::accumulate(output_shape.begin(), output_shape.end(), int64_t(1), std::multiplies()); std::vector output(output_size, 0.0); for (int64_t i = 0; i < output_shape[0] * output_shape[1]; ++i) { - size_t copy_size = hw_output.size() * kFloat32Len; - (void)memcpy_s(&output[i * hw_output.size()], copy_size, &hw_output[0], copy_size); + size_t src_size = hw_output.size() * kFloat32Len; + size_t dst_size = output_shape[2] * output_shape[3] * kFloat32Len; + auto ret = memcpy_s(&output[i * hw_output.size()], dst_size, &hw_output[0], src_size); + if (ret != 0) { + MS_LOG(EXCEPTION) << "memcpy_s error, errorno(" << ret << ")"; + return nullptr; + } } auto output_tensor = std::make_shared(x_dtype, output_shape, &output[0], kNumberTypeFloat32); MS_EXCEPTION_IF_NULL(output_tensor); diff --git a/mindspore/ccsrc/backend/optimizer/common/helper.cc b/mindspore/ccsrc/backend/optimizer/common/helper.cc index 87183e7ff0..36e5ae14a9 100644 --- a/mindspore/ccsrc/backend/optimizer/common/helper.cc +++ b/mindspore/ccsrc/backend/optimizer/common/helper.cc @@ -517,6 +517,7 @@ ValueNodePtr CreateShapeValueNode(const FuncGraphPtr &func_graph, const std::vec auto ret_code = memcpy_s(data_ptr, static_cast(shape_tensor->data().nbytes()), &shape[0], elem_num); if (ret_code != 0) { MS_LOG(EXCEPTION) << "Failed to copy data into Tensor."; + return nullptr; } shape_value = shape_tensor; abstract = std::make_shared(kInt64, shape_vec_shape); diff --git a/mindspore/nn/layer/normalization.py b/mindspore/nn/layer/normalization.py index 340521e792..ff00102b11 100644 --- a/mindspore/nn/layer/normalization.py +++ b/mindspore/nn/layer/normalization.py @@ -714,7 +714,7 @@ class SyncBatchNorm(_BatchNorm): TypeError: If `process_groups` is not a list. ValueError: If `num_features` is less than 1. ValueError: If `momentum` is not in range [0, 1]. - ValueError: If `device_num_each_group` is less than 2. + ValueError: If rank_id in `process_groups` is not in range [0, rank_size). Supported Platforms: ``Ascend``