ParseParamsByOperatorFn
=======================

#### 函数功能

注册解析开发者自定义算子属性的函数。

#### 函数原型

OpRegistrationData &ParseParamsByOperatorFn(const ParseParamByOpFunc &parse\_param\_by\_op\_fn)

#### 参数说明

| 参数 | 输入/输出 | 说明 |
| :-- | :-- | :-- |
| parse\_param\_by\_op\_fn | 输入 | 解析开发者自定义算子属性的函数，请参见[回调函数ParseParamByOpFunc](#回调函数parseparambyopfunc)。 |

#### 回调函数ParseParamByOpFunc

开发者自定义并实现ParseParamByOpFunc类函数，完成原始模型中算子属性到适配AI处理器的模型中属性的映射，将结果填入Operator类中。

Status ParseParamByOpFunc(const ge::Operator &op\_origin, ge::Operator &op\_dest)

**表1** 参数说明

| 参数 | 输入/输出 | 说明 |
| :-- | :-- | :-- |
| op\_origin | 输入 | 框架定义的Operator类对象，包含解析出的原始模型中自定义算子属性信息，关于Operator类，请参见[Operator](https://developer.huawei.com/consumer/cn/doc/harmonyos-guides/cannkit-operator-construction-and-destructor)。 |
| op\_dest | 输出 | 
适配AI处理器的模型中的算子数据结构，保存算子信息。

关于Operator类，请参见[Operator](https://developer.huawei.com/consumer/cn/doc/harmonyos-guides/cannkit-operator-construction-and-destructor)。

 |

#### 约束说明

无

#### 调用示例

原始TensorFlow算子与适配AI处理器的算子属性一一映射的场景：

REGISTER\_CUSTOM\_OP("SoftplusGrad")
.FrameworkType(TENSORFLOW)
.OriginOpType("SoftplusGrad")
.ParseParamsByOperatorFn(AutoMappingByOpFn)
.ImplyType(ImplyType::TVM);

原始TensorFlow算子与适配AI处理器的算子属性无法一一映射的场景：

Status ParseResizeArea(const ge::Operator &op\_src, ge::Operator& op)
  {
    AutoMappingByOpFn(op\_src, op);
 
    ge::TensorDesc input\_tensor = op.GetInputDesc("images");
    input\_tensor.SetOriginFormat(ge::FORMAT\_NHWC);
    input\_tensor.SetFormat(ge::FORMAT\_NHWC);
    auto ret = op.UpdateInputDesc("images", input\_tensor);
    if(ret != ge::GRAPH\_SUCCESS){
        return FAILED;
    }
    ge::TensorDesc output\_tensor = op.GetOutputDesc("y");
    output\_tensor.SetOriginFormat(ge::FORMAT\_NHWC);
    output\_tensor.SetFormat(ge::FORMAT\_NHWC);
    auto ret\_output = op.UpdateOutputDesc("y", output\_tensor);
    if(ret\_output != ge::GRAPH\_SUCCESS){
        return FAILED;
    }
    return SUCCESS;
  }
// register ResizeArea op to GE
REGISTER\_CUSTOM\_OP("ResizeArea")
  .FrameworkType(TENSORFLOW)
  .OriginOpType("ResizeArea")
  .ParseParamsByOperatorFn(ParseResizeArea)
  .ImplyType(ImplyType::AI\_CPU);