!48947 fix expand && mirrorpad

Merge pull request !48947 from 范吉斌/fix_expand
This commit is contained in:
i-robot 2023-02-16 09:37:11 +00:00 committed by Gitee
commit 111a616e73
No known key found for this signature in database
GPG Key ID: 173E9B9CA92EEF8F
2 changed files with 3 additions and 2 deletions

View File

@ -135,6 +135,7 @@ bool ExpandCpuKernelMod::ExpandCalculate(const std::vector<AddressPtr> &inputs,
size_t output_y_element_num = get_element_num(output_y_shape_);
(void)input_x_shape_.insert(input_x_shape_.begin(), RANK - input_x_shape_.size(), 1);
input_x_bcast_.clear();
input_x_bcast_.resize(RANK, kNoBroadcastValue);
for (size_t i = 0; i < RANK; i++) {
if (input_x_shape_[i] == input_shape_[i]) {

View File

@ -110,6 +110,8 @@ class MirrorPadInfer : public abstract::OpInferBase {
auto paddings = input_args[1]->BuildValue();
MS_EXCEPTION_IF_NULL(paddings);
auto x_shape = CheckAndConvertUtils::ConvertShapePtrToShapeMap(input_args[0]->BuildShape())[kShape];
auto paddings_shape = CheckAndConvertUtils::ConvertShapePtrToShapeMap(input_args[1]->BuildShape())[kShape];
CheckPaddingParam(paddings_shape, x_shape, prim_name);
// if shape of x is determined and padding value is unknown, return a all -1 shape
if (paddings->isa<AnyValue>() || paddings->isa<None>()) {
return std::make_shared<abstract::Shape>(ShapeVector(x_shape.size(), abstract::Shape::kShapeDimAny));
@ -117,9 +119,7 @@ class MirrorPadInfer : public abstract::OpInferBase {
auto paddings_arg = CheckAndConvertUtils::CheckTensorIntValue(kPaddings, paddings, prim_name);
std::vector<std::pair<int64_t, int64_t>> paddings_attr;
auto paddings_shape = CheckAndConvertUtils::ConvertShapePtrToShapeMap(input_args[1]->BuildShape())[kShape];
auto mode = GetValue<std::string>(primitive->GetAttr(kMode));
CheckPaddingParam(paddings_shape, x_shape, prim_name);
for (size_t i = 0; i < paddings_arg.size(); i = i + static_cast<size_t>(kPaddingsSecondDimSize)) {
paddings_attr.push_back(std::make_pair(paddings_arg[i], paddings_arg[i + 1]));
}