| @@ -67,6 +67,9 @@ bool ContainsDynamicInpus(const ge::OpDesc &op_desc) { | |||||
| } | } | ||||
| return false; | return false; | ||||
| } | } | ||||
| bool IsOptional(const ge::GeTensorDesc &tensor_desc) { | |||||
| return tensor_desc.GetFormat() == ge::FORMAT_RESERVED && tensor_desc.GetDataType() == ge::DT_UNDEFINED; | |||||
| } | |||||
| } // namespace | } // namespace | ||||
| namespace ge { | namespace ge { | ||||
| @@ -699,7 +702,8 @@ void GeGenerator::RemoveConst(const vector<GeTensor> &inputs, vector<GeTensor> & | |||||
| GeTensorDesc input_desc = input.GetTensorDesc(); | GeTensorDesc input_desc = input.GetTensorDesc(); | ||||
| bool is_const = false; | bool is_const = false; | ||||
| (void)AttrUtils::GetBool(input_desc, CONST_ATTR_NAME_INPUT, is_const); | (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); | outputs.emplace_back(input); | ||||
| } | } | ||||
| } | } | ||||