diff --git a/ge/generator/ge_generator.cc b/ge/generator/ge_generator.cc index 4dff94c9..0ab057f3 100644 --- a/ge/generator/ge_generator.cc +++ b/ge/generator/ge_generator.cc @@ -67,6 +67,9 @@ bool ContainsDynamicInpus(const ge::OpDesc &op_desc) { } return false; } +bool IsOptional(const ge::GeTensorDesc &tensor_desc) { + return tensor_desc.GetFormat() == ge::FORMAT_RESERVED && tensor_desc.GetDataType() == ge::DT_UNDEFINED; +} } // namespace namespace ge { @@ -715,7 +718,8 @@ void GeGenerator::RemoveConst(const vector &inputs, vector & GeTensorDesc input_desc = input.GetTensorDesc(); bool is_const = false; (void)AttrUtils::GetBool(input_desc, CONST_ATTR_NAME_INPUT, is_const); - if (!is_const) { + bool is_optional = IsOptional(input_desc); + if (!is_optional && !is_const) { outputs.emplace_back(input); } }