|
|
@ -458,21 +458,22 @@ namespace ops = paddle::operators;
|
|
|
|
|
|
|
|
|
|
|
|
#define FOR_EACH_INPLACE_OP_FUNCTOR(__macro) \
|
|
|
|
#define FOR_EACH_INPLACE_OP_FUNCTOR(__macro) \
|
|
|
|
__macro(Sigmoid, sigmoid); \
|
|
|
|
__macro(Sigmoid, sigmoid); \
|
|
|
|
__macro(Relu, relu); \
|
|
|
|
|
|
|
|
__macro(Exp, exp); \
|
|
|
|
__macro(Exp, exp); \
|
|
|
|
__macro(Tanh, tanh); \
|
|
|
|
|
|
|
|
__macro(Ceil, ceil); \
|
|
|
|
__macro(Ceil, ceil); \
|
|
|
|
__macro(Floor, floor); \
|
|
|
|
__macro(Floor, floor); \
|
|
|
|
__macro(Sqrt, sqrt); \
|
|
|
|
|
|
|
|
__macro(SoftRelu, soft_relu); \
|
|
|
|
__macro(SoftRelu, soft_relu); \
|
|
|
|
__macro(Relu6, relu6); \
|
|
|
|
__macro(Relu6, relu6); \
|
|
|
|
__macro(Reciprocal, reciprocal); \
|
|
|
|
__macro(Reciprocal, reciprocal); \
|
|
|
|
__macro(HardSigmoid, hard_sigmoid);
|
|
|
|
__macro(HardSigmoid, hard_sigmoid);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
#define FOR_EACH_MKLDNN_INPLACE_OP_FUNCTOR(__macro) \
|
|
|
|
|
|
|
|
__macro(Relu, relu); \
|
|
|
|
|
|
|
|
__macro(Tanh, tanh); \
|
|
|
|
|
|
|
|
__macro(Sqrt, sqrt);
|
|
|
|
|
|
|
|
|
|
|
|
#define FOR_EACH_OP_FUNCTOR(__macro) \
|
|
|
|
#define FOR_EACH_OP_FUNCTOR(__macro) \
|
|
|
|
__macro(LogSigmoid, logsigmoid); \
|
|
|
|
__macro(LogSigmoid, logsigmoid); \
|
|
|
|
__macro(SoftShrink, softshrink); \
|
|
|
|
__macro(SoftShrink, softshrink); \
|
|
|
|
__macro(Abs, abs); \
|
|
|
|
|
|
|
|
__macro(Cos, cos); \
|
|
|
|
__macro(Cos, cos); \
|
|
|
|
__macro(Sin, sin); \
|
|
|
|
__macro(Sin, sin); \
|
|
|
|
__macro(Round, round); \
|
|
|
|
__macro(Round, round); \
|
|
|
@ -490,18 +491,32 @@ namespace ops = paddle::operators;
|
|
|
|
__macro(Swish, swish); \
|
|
|
|
__macro(Swish, swish); \
|
|
|
|
__macro(ThresholdedRelu, thresholded_relu);
|
|
|
|
__macro(ThresholdedRelu, thresholded_relu);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
#define FOR_EACH_MKLDNN_OP_FUNCTOR(__macro) __macro(Abs, abs);
|
|
|
|
|
|
|
|
|
|
|
|
#define REGISTER_INPLACE_ACTIVATION_OP(OP_NAME, KERNEL_TYPE) \
|
|
|
|
#define REGISTER_INPLACE_ACTIVATION_OP(OP_NAME, KERNEL_TYPE) \
|
|
|
|
REGISTER_OPERATOR(KERNEL_TYPE, ::paddle::operators::ActivationOp, \
|
|
|
|
REGISTER_OPERATOR(KERNEL_TYPE, ::paddle::operators::ActivationOp, \
|
|
|
|
::paddle::operators::OP_NAME##OpMaker, \
|
|
|
|
::paddle::operators::OP_NAME##OpMaker, \
|
|
|
|
::paddle::operators::OP_NAME##GradMaker); \
|
|
|
|
::paddle::operators::OP_NAME##GradMaker); \
|
|
|
|
REGISTER_OPERATOR(KERNEL_TYPE##_grad, ::paddle::operators::ActivationOpGrad)
|
|
|
|
REGISTER_OPERATOR(KERNEL_TYPE##_grad, ::paddle::operators::ActivationOpGrad)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
#define REGISTER_INPLACE_ACTIVATION_MKLDNN_OP(OP_NAME, KERNEL_TYPE) \
|
|
|
|
|
|
|
|
REGISTER_OPERATOR(KERNEL_TYPE, ops::ActivationWithMKLDNNOp, \
|
|
|
|
|
|
|
|
::paddle::operators::OP_NAME##OpMaker, \
|
|
|
|
|
|
|
|
::paddle::operators::OP_NAME##GradMaker); \
|
|
|
|
|
|
|
|
REGISTER_OPERATOR(KERNEL_TYPE##_grad, ops::ActivationWithMKLDNNOpGrad)
|
|
|
|
|
|
|
|
|
|
|
|
#define REGISTER_ACTIVATION_OP(OP_NAME, KERNEL_TYPE) \
|
|
|
|
#define REGISTER_ACTIVATION_OP(OP_NAME, KERNEL_TYPE) \
|
|
|
|
REGISTER_OPERATOR(KERNEL_TYPE, ::paddle::operators::ActivationOp, \
|
|
|
|
REGISTER_OPERATOR(KERNEL_TYPE, ::paddle::operators::ActivationOp, \
|
|
|
|
::paddle::operators::OP_NAME##OpMaker, \
|
|
|
|
::paddle::operators::OP_NAME##OpMaker, \
|
|
|
|
::paddle::framework::DefaultGradOpDescMaker<true>); \
|
|
|
|
::paddle::framework::DefaultGradOpDescMaker<true>); \
|
|
|
|
REGISTER_OPERATOR(KERNEL_TYPE##_grad, ::paddle::operators::ActivationOpGrad)
|
|
|
|
REGISTER_OPERATOR(KERNEL_TYPE##_grad, ::paddle::operators::ActivationOpGrad)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
#define REGISTER_ACTIVATION_MKLDNN_OP(OP_NAME, KERNEL_TYPE) \
|
|
|
|
|
|
|
|
REGISTER_OPERATOR(KERNEL_TYPE, ops::ActivationWithMKLDNNOp, \
|
|
|
|
|
|
|
|
::paddle::operators::OP_NAME##OpMaker, \
|
|
|
|
|
|
|
|
::paddle::framework::DefaultGradOpDescMaker<true>); \
|
|
|
|
|
|
|
|
REGISTER_OPERATOR(KERNEL_TYPE##_grad, ops::ActivationWithMKLDNNOpGrad)
|
|
|
|
|
|
|
|
|
|
|
|
#define REGISTER_ACTIVATION_CPU_KERNEL(act_type, functor, grad_functor) \
|
|
|
|
#define REGISTER_ACTIVATION_CPU_KERNEL(act_type, functor, grad_functor) \
|
|
|
|
REGISTER_OP_CPU_KERNEL( \
|
|
|
|
REGISTER_OP_CPU_KERNEL( \
|
|
|
|
act_type, ops::ActivationKernel<paddle::platform::CPUDeviceContext, \
|
|
|
|
act_type, ops::ActivationKernel<paddle::platform::CPUDeviceContext, \
|
|
|
@ -516,5 +531,7 @@ namespace ops = paddle::operators;
|
|
|
|
ops::grad_functor<double>>);
|
|
|
|
ops::grad_functor<double>>);
|
|
|
|
|
|
|
|
|
|
|
|
FOR_EACH_OP_FUNCTOR(REGISTER_ACTIVATION_OP);
|
|
|
|
FOR_EACH_OP_FUNCTOR(REGISTER_ACTIVATION_OP);
|
|
|
|
|
|
|
|
FOR_EACH_MKLDNN_OP_FUNCTOR(REGISTER_ACTIVATION_MKLDNN_OP);
|
|
|
|
FOR_EACH_INPLACE_OP_FUNCTOR(REGISTER_INPLACE_ACTIVATION_OP);
|
|
|
|
FOR_EACH_INPLACE_OP_FUNCTOR(REGISTER_INPLACE_ACTIVATION_OP);
|
|
|
|
|
|
|
|
FOR_EACH_MKLDNN_INPLACE_OP_FUNCTOR(REGISTER_INPLACE_ACTIVATION_MKLDNN_OP);
|
|
|
|
FOR_EACH_KERNEL_FUNCTOR(REGISTER_ACTIVATION_CPU_KERNEL);
|
|
|
|
FOR_EACH_KERNEL_FUNCTOR(REGISTER_ACTIVATION_CPU_KERNEL);
|
|
|
|