ADD file via upload
This commit is contained in:
parent
173c6d5ddb
commit
bc56d98e99
|
|
@ -0,0 +1,290 @@
|
|||
/**
|
||||
* Copyright 2019-2021 Huawei Technologies Co., Ltd
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
#include "transform/graph_ir/op_declare/nonlinear_fuc_ops_declare.h"
|
||||
|
||||
namespace mindspore::transform {
|
||||
// Relu
|
||||
INPUT_MAP(Relu) = {{1, INPUT_DESC(x)}};
|
||||
//输入映射,x的索引为1
|
||||
ATTR_MAP(Relu) = EMPTY_ATTR_MAP;
|
||||
//属性映射,空
|
||||
OUTPUT_MAP(Relu) = {{0, OUTPUT_DESC(y)}};
|
||||
//输出映射,y的索引为0
|
||||
REG_ADPT_DESC(Relu, prim::kPrimRelu->name(), ADPT_DESC(Relu))
|
||||
// 注册Relu操作的适配器描述prim::kPrimRelu->name()
|
||||
|
||||
// ReluV2
|
||||
INPUT_MAP(ReluV2) = {{1, INPUT_DESC(x)}};
|
||||
// 输入映射,x的索引为1
|
||||
ATTR_MAP(ReluV2) = EMPTY_ATTR_MAP;
|
||||
// 属性映射,空
|
||||
OUTPUT_MAP(ReluV2) = {{0, OUTPUT_DESC(y)}, {1, OUTPUT_DESC(mask)}};
|
||||
// 输出映射,y的索引为0,mask索引为1
|
||||
REG_ADPT_DESC(ReluV2, kNameReluV2, ADPT_DESC(ReluV2))
|
||||
// 注册ReluV2操作的适配器描述kNameReluV2
|
||||
|
||||
// Elu
|
||||
INPUT_MAP(Elu) = {{1, INPUT_DESC(x)}};
|
||||
// 输入映射,x的索引为1
|
||||
ATTR_MAP(Elu) = {{"alpha", ATTR_DESC(alpha, AnyTraits<float>())}};
|
||||
// 属性映射,属性"alpha"的类型为float
|
||||
OUTPUT_MAP(Elu) = {{0, OUTPUT_DESC(y)}};
|
||||
// 输出映射,y的索引为0
|
||||
REG_ADPT_DESC(Elu, kNameElu, ADPT_DESC(Elu))
|
||||
// 注册Elu操作的适配器描述kNameElu
|
||||
|
||||
// EluGrad
|
||||
INPUT_MAP(EluGrad) = {{1, INPUT_DESC(grads)}, {2, INPUT_DESC(activations)}};
|
||||
// 输入映射,有两个,x的索引为1,activations索引为2
|
||||
ATTR_MAP(EluGrad) = EMPTY_ATTR_MAP;
|
||||
// 属性映射,空
|
||||
OUTPUT_MAP(EluGrad) = {{0, OUTPUT_DESC(y)}};
|
||||
// 输出映射,y的索引为0
|
||||
REG_ADPT_DESC(EluGrad, kNameEluGrad, ADPT_DESC(EluGrad))
|
||||
// 注册EluGrad操作的适配器描述kNameEluGrad
|
||||
|
||||
// PRelu
|
||||
INPUT_MAP(PRelu) = {{1, INPUT_DESC(x)}, {2, INPUT_DESC(weight)}};
|
||||
// 输入映射,有两个,x的索引为1,weight索引为2
|
||||
ATTR_MAP(PRelu) = EMPTY_ATTR_MAP;
|
||||
// 属性映射,空
|
||||
OUTPUT_MAP(PRelu) = {{0, OUTPUT_DESC(y)}};
|
||||
// 输出映射,y的索引为0
|
||||
REG_ADPT_DESC(PRelu, kNamePrelu, ADPT_DESC(PRelu))
|
||||
// 注册PRelu操作的适配器描述kNamePrelu
|
||||
|
||||
// PReluGrad
|
||||
INPUT_MAP(PReluGrad) = {{1, INPUT_DESC(grads)}, {2, INPUT_DESC(features)}, {3, INPUT_DESC(weights)}};
|
||||
// 输入映射,有三个,grads的索引为1,features索引为2,weights索引为3
|
||||
ATTR_MAP(PReluGrad) = EMPTY_ATTR_MAP;
|
||||
// 属性映射,空
|
||||
OUTPUT_MAP(PReluGrad) = {{0, OUTPUT_DESC(dx)}, {1, OUTPUT_DESC(da)}};
|
||||
// 输出映射,dx的索引为0,da索引为1
|
||||
REG_ADPT_DESC(PReluGrad, kNamePreluGrad, ADPT_DESC(PReluGrad))
|
||||
// 注册PReluGrad操作的适配器描述kNamePreluGrad
|
||||
|
||||
// Selu
|
||||
INPUT_MAP(Selu) = {{1, INPUT_DESC(x)}};
|
||||
// 输入映射,x的索引为1
|
||||
ATTR_MAP(Selu) = EMPTY_ATTR_MAP;
|
||||
// 属性映射,空
|
||||
OUTPUT_MAP(Selu) = {{0, OUTPUT_DESC(y)}};
|
||||
// 输出映射,y的索引为0
|
||||
REG_ADPT_DESC(Selu, kNameSelu, ADPT_DESC(Selu))
|
||||
// 注册Selu操作的适配器描述kNameSelu
|
||||
|
||||
// Sigmoid
|
||||
INPUT_MAP(Sigmoid) = {{1, INPUT_DESC(x)}};
|
||||
// 输入映射,x的索引为1
|
||||
ATTR_MAP(Sigmoid) = EMPTY_ATTR_MAP;
|
||||
// 属性映射,空
|
||||
OUTPUT_MAP(Sigmoid) = {{0, OUTPUT_DESC(y)}};
|
||||
// 输出映射,y的索引为0
|
||||
REG_ADPT_DESC(Sigmoid, kNameSigmoid, ADPT_DESC(Sigmoid))
|
||||
// 注册Sigmoid操作的适配器描述kNameSigmoid
|
||||
|
||||
// SigmoidGrad
|
||||
INPUT_MAP(SigmoidGrad) = {{1, INPUT_DESC(y)}, {2, INPUT_DESC(dy)}};
|
||||
// 输入映射,有两个,y的索引为1,dy索引为2
|
||||
ATTR_MAP(SigmoidGrad) = EMPTY_ATTR_MAP;
|
||||
// 属性映射,空
|
||||
OUTPUT_MAP(SigmoidGrad) = {{0, OUTPUT_DESC(z)}};
|
||||
// 输出映射,y的索引为0
|
||||
REG_ADPT_DESC(SigmoidGrad, kNameSigmoidGrad, ADPT_DESC(SigmoidGrad))
|
||||
// 注册SigmoidGrad操作的适配器描述kNameSigmoidGrad
|
||||
|
||||
// HardSwish
|
||||
INPUT_MAP(HardSwish) = {{1, INPUT_DESC(x)}};
|
||||
// 输入映射,x的索引为1
|
||||
ATTR_MAP(HardSwish) = EMPTY_ATTR_MAP;
|
||||
// 属性映射,空
|
||||
OUTPUT_MAP(HardSwish) = {{0, OUTPUT_DESC(y)}};
|
||||
// 输出映射,y的索引为0
|
||||
REG_ADPT_DESC(HardSwish, kNameHSwish, ADPT_DESC(HardSwish))
|
||||
// 注册HardSwish操作的适配器描述kNameHSwish
|
||||
|
||||
// HardSwishGrad
|
||||
INPUT_MAP(HardSwishGrad) = {{1, INPUT_DESC(grad)}, {2, INPUT_DESC(x)}};
|
||||
// 输入映射,有两个,grad的索引为1,x索引为2
|
||||
ATTR_MAP(HardSwishGrad) = EMPTY_ATTR_MAP;
|
||||
// 属性映射,空
|
||||
OUTPUT_MAP(HardSwishGrad) = {{0, OUTPUT_DESC(y)}};
|
||||
// 输出映射,y的索引为0
|
||||
REG_ADPT_DESC(HardSwishGrad, kNameHSwishGrad, ADPT_DESC(HardSwishGrad))
|
||||
// 注册HardSwishGrad操作的适配器描述kNameHSwishGrad
|
||||
|
||||
// HSigmoid
|
||||
INPUT_MAP(HardSigmoid) = {{1, INPUT_DESC(input_x)}};
|
||||
// 输入映射,input_x的索引为1
|
||||
ATTR_MAP(HardSigmoid) = {{"alpha", ATTR_DESC(alpha, AnyTraits<float>())},
|
||||
{"beta", ATTR_DESC(beta, AnyTraits<float>())}};
|
||||
// 属性映射,属性"alpha""beta"的类型为float
|
||||
OUTPUT_MAP(HardSigmoid) = {{0, OUTPUT_DESC(output_y)}};
|
||||
// 输出映射,y的索引为0
|
||||
REG_ADPT_DESC(HardSigmoid, kNameHSigmoid, ADPT_DESC(HardSigmoid))
|
||||
// 注册HardSigmoid操作的适配器描述kNameHSigmoid
|
||||
|
||||
// Relu6
|
||||
INPUT_MAP(Relu6) = {{1, INPUT_DESC(x)}};
|
||||
// 输入映射,x的索引为1
|
||||
ATTR_MAP(Relu6) = EMPTY_ATTR_MAP;
|
||||
// 属性映射,空
|
||||
OUTPUT_MAP(Relu6) = {{0, OUTPUT_DESC(y)}};
|
||||
// 输出映射,y的索引为0
|
||||
REG_ADPT_DESC(Relu6, kNameReLU6, ADPT_DESC(Relu6))
|
||||
// 注册Relu6操作的适配器描述kNameReLU6
|
||||
|
||||
// Relu6Grad
|
||||
INPUT_MAP(Relu6Grad) = {{1, INPUT_DESC(gradients)}, {2, INPUT_DESC(features)}};
|
||||
// 输入映射,有两个,gradients的索引为1,features索引为2
|
||||
ATTR_MAP(Relu6Grad) = EMPTY_ATTR_MAP;
|
||||
// 属性映射,空
|
||||
OUTPUT_MAP(Relu6Grad) = {{0, OUTPUT_DESC(backprops)}};
|
||||
// 输出映射,backprops的索引为0
|
||||
REG_ADPT_DESC(Relu6Grad, kNameReLU6Grad, ADPT_DESC(Relu6Grad))
|
||||
// 注册Relu6Grad操作的适配器描述kNameReLU6Grad
|
||||
|
||||
// Softsign
|
||||
INPUT_MAP(Softsign) = {{1, INPUT_DESC(x)}};
|
||||
// 输入映射,x的索引为1
|
||||
ATTR_MAP(Softsign) = EMPTY_ATTR_MAP;
|
||||
// 属性映射,空
|
||||
OUTPUT_MAP(Softsign) = {{0, OUTPUT_DESC(y)}};
|
||||
// 输出映射,y的索引为0
|
||||
REG_ADPT_DESC(Softsign, kNameSoftsign, ADPT_DESC(Softsign))
|
||||
// 注册Softsign操作的适配器描述kNameSoftsign
|
||||
|
||||
// Softplus
|
||||
INPUT_MAP(Softplus) = {{1, INPUT_DESC(x)}};
|
||||
// 输入映射,x的索引为1
|
||||
ATTR_MAP(Softplus) = EMPTY_ATTR_MAP;
|
||||
// 属性映射,空
|
||||
OUTPUT_MAP(Softplus) = {{0, OUTPUT_DESC(y)}};
|
||||
// 输出映射,y的索引为0
|
||||
REG_ADPT_DESC(Softplus, kNameSoftplus, ADPT_DESC(Softplus))
|
||||
// 注册Softplus操作的适配器描述 kNameSoftplus
|
||||
|
||||
// SoftplusGrad
|
||||
INPUT_MAP(SoftplusGrad) = {{1, INPUT_DESC(gradients)}, {2, INPUT_DESC(features)}};
|
||||
// 输入映射,有两个,gradients的索引为1,features索引为2
|
||||
ATTR_MAP(SoftplusGrad) = EMPTY_ATTR_MAP;
|
||||
// 属性映射,空
|
||||
OUTPUT_MAP(SoftplusGrad) = {{0, OUTPUT_DESC(backprops)}};
|
||||
// 输出映射,backprops的索引为0
|
||||
REG_ADPT_DESC(SoftplusGrad, kNameSoftplusGrad, ADPT_DESC(SoftplusGrad))
|
||||
// 注册SoftplusGrad操作的适配器描述kNameSoftplusGrad
|
||||
|
||||
// ReluGrad
|
||||
INPUT_MAP(ReluGrad) = {{1, INPUT_DESC(gradients)}, {2, INPUT_DESC(features)}};
|
||||
// 输入映射,有两个,gradients的索引为1,features索引为2
|
||||
ATTR_MAP(ReluGrad) = EMPTY_ATTR_MAP;
|
||||
// 属性映射,空
|
||||
OUTPUT_MAP(ReluGrad) = {{0, OUTPUT_DESC(backprops)}};
|
||||
// 输出映射,backprops的索引为0
|
||||
REG_ADPT_DESC(ReluGrad, prim::kPrimReluGrad->name(), ADPT_DESC(ReluGrad))
|
||||
// 注册ReluGrad操作的适配器描述prim::kPrimReluGrad->name()
|
||||
|
||||
// ReluGradV2
|
||||
INPUT_MAP(ReluGradV2) = {{1, INPUT_DESC(gradients)}, {2, INPUT_DESC(mask)}};
|
||||
// 输入映射,有两个,gradients的索引为1,mask索引为2
|
||||
ATTR_MAP(ReluGradV2) = EMPTY_ATTR_MAP;
|
||||
// 属性映射,空
|
||||
OUTPUT_MAP(ReluGradV2) = {{0, OUTPUT_DESC(backprops)}};
|
||||
// 输出映射,backprops的索引为0
|
||||
REG_ADPT_DESC(ReluGradV2, kNameReluGradV2, ADPT_DESC(ReluGradV2))
|
||||
// 注册ReluGradV2操作的适配器描述kNameReluGradV2
|
||||
|
||||
// Tanh
|
||||
INPUT_MAP(Tanh) = {{1, INPUT_DESC(x)}};
|
||||
// 输入映射,x的索引为1
|
||||
ATTR_MAP(Tanh) = EMPTY_ATTR_MAP;
|
||||
// 属性映射,空
|
||||
OUTPUT_MAP(Tanh) = {{0, OUTPUT_DESC(y)}};
|
||||
// 输出映射,y的索引为0
|
||||
REG_ADPT_DESC(Tanh, prim::kPrimTanh->name(), ADPT_DESC(Tanh))
|
||||
// 注册Tanh操作的适配器描述prim::kPrimTanh->name()
|
||||
|
||||
// TanhGrad
|
||||
INPUT_MAP(TanhGrad) = {{1, INPUT_DESC(y)}, {2, INPUT_DESC(dy)}};
|
||||
// 输入映射,有两个,y的索引为1,dy索引为2
|
||||
ATTR_MAP(TanhGrad) = EMPTY_ATTR_MAP;
|
||||
// 属性映射,空
|
||||
OUTPUT_MAP(TanhGrad) = {{0, OUTPUT_DESC(z)}};
|
||||
// 输出映射,z的索引为0
|
||||
REG_ADPT_DESC(TanhGrad, prim::kPrimTanhGrad->name(), ADPT_DESC(TanhGrad))
|
||||
// 注册NPUTanhGrad操作的适配器描述prim::kPrimTanhGrad->name()
|
||||
|
||||
// Mish
|
||||
INPUT_MAP(Mish) = {{1, INPUT_DESC(x)}};
|
||||
// 输入映射,x的索引为1
|
||||
ATTR_MAP(Mish) = EMPTY_ATTR_MAP;
|
||||
// 属性映射,空
|
||||
OUTPUT_MAP(Mish) = {{0, OUTPUT_DESC(y)}};
|
||||
// 输出映射,y的索引为0
|
||||
REG_ADPT_DESC(Mish, kNameMish, ADPT_DESC(Mish))
|
||||
// 注册Mish操作的适配器描述kNameMish
|
||||
|
||||
// GeLU
|
||||
INPUT_MAP(Gelu) = {{1, INPUT_DESC(x)}};
|
||||
// 输入映射,x的索引为1
|
||||
ATTR_MAP(Gelu) = EMPTY_ATTR_MAP;
|
||||
// 属性映射,空
|
||||
OUTPUT_MAP(Gelu) = {{0, OUTPUT_DESC(y)}};
|
||||
// 输出映射,y的索引为0
|
||||
REG_ADPT_DESC(Gelu, prim::kPrimGeLU->name(), ADPT_DESC(Gelu))
|
||||
// 注册Gelu操作的适配器描述prim::kPrimGeLU->name()
|
||||
|
||||
// GeLUGrad
|
||||
INPUT_MAP(GeluGrad) = {{1, INPUT_DESC(dy)}, {2, INPUT_DESC(x)}, {3, INPUT_DESC(y)}};
|
||||
// 输入映射,有三个,x的索引为1,activations索引为2,y索引为3
|
||||
ATTR_MAP(GeluGrad) = EMPTY_ATTR_MAP;
|
||||
// 属性映射,空
|
||||
OUTPUT_MAP(GeluGrad) = {{0, OUTPUT_DESC(z)}};
|
||||
// 输出映射,z的索引为0
|
||||
REG_ADPT_DESC(GeluGrad, prim::kPrimGeLUGrad->name(), ADPT_DESC(GeluGrad))
|
||||
// 注册GeluGrad操作的适配器描述prim::kPrimGeLUGrad->name()
|
||||
|
||||
// FastGeLU
|
||||
INPUT_MAP(FastGelu) = {{1, INPUT_DESC(x)}};
|
||||
// 输入映射,x的索引为1
|
||||
ATTR_MAP(FastGelu) = EMPTY_ATTR_MAP;
|
||||
// 属性映射,空
|
||||
OUTPUT_MAP(FastGelu) = {{0, OUTPUT_DESC(y)}};
|
||||
// 输出映射,y的索引为0
|
||||
REG_ADPT_DESC(FastGelu, prim::kPrimFastGeLU->name(), ADPT_DESC(FastGelu))
|
||||
// 注册FastGelu操作的适配器描述 prim::kPrimFastGeLU->name()
|
||||
|
||||
// FastGeLUGrad
|
||||
INPUT_MAP(FastGeluGrad) = {{1, INPUT_DESC(dy)}, {2, INPUT_DESC(x)}};
|
||||
// 输入映射,有两个,dy的索引为1,x索引为2
|
||||
ATTR_MAP(FastGeluGrad) = EMPTY_ATTR_MAP;
|
||||
// 属性映射,空
|
||||
OUTPUT_MAP(FastGeluGrad) = {{0, OUTPUT_DESC(z)}};
|
||||
// 输出映射,z的索引为0
|
||||
REG_ADPT_DESC(FastGeluGrad, prim::kPrimFastGeLUGrad->name(), ADPT_DESC(FastGeluGrad))
|
||||
// 注册FastGeluGrad操作的适配器描述 prim::kPrimFastGeLUGrad->name()
|
||||
|
||||
// LeakyRelu
|
||||
INPUT_MAP(LeakyRelu) = {{1, INPUT_DESC(x)}};
|
||||
// 输入映射,x的索引为1
|
||||
ATTR_MAP(LeakyRelu) = {{"alpha", ATTR_DESC(negative_slope, AnyTraits<float>())}};
|
||||
// 属性映射,属性"alpha"的类型为float
|
||||
OUTPUT_MAP(LeakyRelu) = {{0, OUTPUT_DESC(y)}};
|
||||
// 输出映射,y的索引为0
|
||||
REG_ADPT_DESC(LeakyRelu, prim::kPrimLeakyRelu->name(), ADPT_DESC(LeakyRelu))
|
||||
// 注册LeakyRelu操作的适配器描述 prim::kPrimLeakyRelu->name()
|
||||
} // namespace mindspore::transform
|
||||
Loading…
Reference in New Issue