ADD file via upload

This commit is contained in:
Dengrx 2023-08-27 15:15:59 +08:00
parent 173c6d5ddb
commit bc56d98e99
1 changed files with 290 additions and 0 deletions

View File

@ -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的索引为0mask索引为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的索引为1activations索引为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的索引为1weight索引为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的索引为1features索引为2weights索引为3
ATTR_MAP(PReluGrad) = EMPTY_ATTR_MAP;
// 属性映射,空
OUTPUT_MAP(PReluGrad) = {{0, OUTPUT_DESC(dx)}, {1, OUTPUT_DESC(da)}};
// 输出映射dx的索引为0da索引为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的索引为1dy索引为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的索引为1x索引为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的索引为1features索引为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的索引为1features索引为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的索引为1features索引为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的索引为1mask索引为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的索引为1dy索引为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的索引为1activations索引为2y索引为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的索引为1x索引为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