|
|
|
@ -822,10 +822,10 @@ class SquareDoubleGradMaker : public ::paddle::framework::SingleGradOpMaker<T> {
|
|
|
|
|
}
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
DECLARE_INPLACE_OP_INFERER(ActivationGradOpInplaceInference,
|
|
|
|
|
DECLARE_INPLACE_OP_INFERER(ActivationGradOpInplaceInferer,
|
|
|
|
|
{framework::GradVarName("Out"),
|
|
|
|
|
framework::GradVarName("X")});
|
|
|
|
|
DECLARE_INPLACE_OP_INFERER(ActivationDoubleGradOpInplaceInference,
|
|
|
|
|
DECLARE_INPLACE_OP_INFERER(ActivationDoubleGradOpInplaceInferer,
|
|
|
|
|
{"DDX", "DDOut"});
|
|
|
|
|
|
|
|
|
|
template <typename T>
|
|
|
|
@ -913,7 +913,7 @@ namespace plat = paddle::platform;
|
|
|
|
|
std::conditional<ops::CanInplaceAct<ops::grad_functor<float>>(), \
|
|
|
|
|
ops::ActFwdInplaceInferer, void>::type); \
|
|
|
|
|
REGISTER_OPERATOR(KERNEL_TYPE##_grad, ops::ActivationOpGrad, \
|
|
|
|
|
ops::ActivationGradOpInplaceInference);
|
|
|
|
|
ops::ActivationGradOpInplaceInferer);
|
|
|
|
|
|
|
|
|
|
#define REGISTER_ACTIVATION_CPU_KERNEL(act_type, op_name, functor, \
|
|
|
|
|
grad_functor) \
|
|
|
|
@ -941,13 +941,13 @@ REGISTER_OPERATOR(
|
|
|
|
|
paddle::imperative::OpBase>,
|
|
|
|
|
ops::ActFwdInplaceInferer);
|
|
|
|
|
REGISTER_OPERATOR(relu_grad, ops::ActivationOpGrad,
|
|
|
|
|
ops::ActivationGradOpInplaceInference,
|
|
|
|
|
ops::ActivationGradOpInplaceInferer,
|
|
|
|
|
ops::ReluDoubleGradMaker<paddle::framework::OpDesc>,
|
|
|
|
|
ops::ReluDoubleGradMaker<paddle::imperative::OpBase>);
|
|
|
|
|
REGISTER_OPERATOR(
|
|
|
|
|
relu_grad_grad,
|
|
|
|
|
ops::ActivationOpDoubleGrad2<ops::ReluGradFunctor<float>::FwdDeps()>,
|
|
|
|
|
ops::ActivationDoubleGradOpInplaceInference);
|
|
|
|
|
ops::ActivationDoubleGradOpInplaceInferer);
|
|
|
|
|
|
|
|
|
|
REGISTER_ACTIVATION_CPU_KERNEL(relu, Relu, ReluFunctor, ReluGradFunctor);
|
|
|
|
|
|
|
|
|
@ -971,13 +971,13 @@ REGISTER_OPERATOR(
|
|
|
|
|
paddle::imperative::OpBase>,
|
|
|
|
|
ops::ActFwdInplaceInferer);
|
|
|
|
|
REGISTER_OPERATOR(leaky_relu_grad, ops::ActivationOpGrad,
|
|
|
|
|
ops::ActivationGradOpInplaceInference,
|
|
|
|
|
ops::ActivationGradOpInplaceInferer,
|
|
|
|
|
ops::LeakyReluDoubleGradMaker<paddle::framework::OpDesc>,
|
|
|
|
|
ops::LeakyReluDoubleGradMaker<paddle::imperative::OpBase>);
|
|
|
|
|
REGISTER_OPERATOR(
|
|
|
|
|
leaky_relu_grad_grad,
|
|
|
|
|
ops::ActivationOpDoubleGrad2<ops::LeakyReluGradFunctor<float>::FwdDeps()>,
|
|
|
|
|
ops::ActivationDoubleGradOpInplaceInference);
|
|
|
|
|
ops::ActivationDoubleGradOpInplaceInferer);
|
|
|
|
|
|
|
|
|
|
REGISTER_ACTIVATION_CPU_KERNEL(leaky_relu, LeakyRelu, LeakyReluFunctor,
|
|
|
|
|
LeakyReluGradFunctor);
|
|
|
|
@ -1000,13 +1000,13 @@ REGISTER_OPERATOR(
|
|
|
|
|
paddle::imperative::OpBase>,
|
|
|
|
|
ops::ActFwdInplaceInferer);
|
|
|
|
|
REGISTER_OPERATOR(elu_grad, ops::ActivationOpGrad,
|
|
|
|
|
ops::ActivationGradOpInplaceInference,
|
|
|
|
|
ops::ActivationGradOpInplaceInferer,
|
|
|
|
|
ops::ELUDoubleGradMaker<paddle::framework::OpDesc>,
|
|
|
|
|
ops::ELUDoubleGradMaker<paddle::imperative::OpBase>);
|
|
|
|
|
REGISTER_OPERATOR(
|
|
|
|
|
elu_grad_grad,
|
|
|
|
|
ops::ActivationOpDoubleGrad<ops::ELUGradFunctor<float>::FwdDeps()>,
|
|
|
|
|
ops::ActivationDoubleGradOpInplaceInference);
|
|
|
|
|
ops::ActivationDoubleGradOpInplaceInferer);
|
|
|
|
|
|
|
|
|
|
REGISTER_ACTIVATION_CPU_KERNEL(elu, ELU, ELUFunctor, ELUGradFunctor);
|
|
|
|
|
REGISTER_OP_CPU_KERNEL(
|
|
|
|
@ -1028,13 +1028,13 @@ REGISTER_OPERATOR(
|
|
|
|
|
paddle::imperative::OpBase>,
|
|
|
|
|
ops::ActFwdInplaceInferer);
|
|
|
|
|
REGISTER_OPERATOR(sqrt_grad, ops::ActivationOpGrad,
|
|
|
|
|
ops::ActivationGradOpInplaceInference,
|
|
|
|
|
ops::ActivationGradOpInplaceInferer,
|
|
|
|
|
ops::SqrtDoubleGradMaker<paddle::framework::OpDesc>,
|
|
|
|
|
ops::SqrtDoubleGradMaker<paddle::imperative::OpBase>);
|
|
|
|
|
REGISTER_OPERATOR(
|
|
|
|
|
sqrt_grad_grad,
|
|
|
|
|
ops::ActivationOpDoubleGrad<ops::SqrtGradGradFunctor<float>::FwdDeps()>,
|
|
|
|
|
ops::ActivationDoubleGradOpInplaceInference);
|
|
|
|
|
ops::ActivationDoubleGradOpInplaceInferer);
|
|
|
|
|
|
|
|
|
|
REGISTER_ACTIVATION_CPU_KERNEL(sqrt, Sqrt, SqrtFunctor, SqrtGradFunctor);
|
|
|
|
|
REGISTER_OP_CPU_KERNEL(
|
|
|
|
@ -1056,13 +1056,13 @@ REGISTER_OPERATOR(
|
|
|
|
|
paddle::imperative::OpBase>,
|
|
|
|
|
ops::ActFwdInplaceInferer);
|
|
|
|
|
REGISTER_OPERATOR(square_grad, ops::ActivationOpGrad,
|
|
|
|
|
ops::ActivationGradOpInplaceInference,
|
|
|
|
|
ops::ActivationGradOpInplaceInferer,
|
|
|
|
|
ops::SquareDoubleGradMaker<paddle::framework::OpDesc>,
|
|
|
|
|
ops::SquareDoubleGradMaker<paddle::imperative::OpBase>);
|
|
|
|
|
REGISTER_OPERATOR(
|
|
|
|
|
square_grad_grad,
|
|
|
|
|
ops::ActivationOpDoubleGrad<ops::SquareGradGradFunctor<float>::FwdDeps()>,
|
|
|
|
|
ops::ActivationDoubleGradOpInplaceInference);
|
|
|
|
|
ops::ActivationDoubleGradOpInplaceInferer);
|
|
|
|
|
|
|
|
|
|
REGISTER_OP_CPU_KERNEL(square,
|
|
|
|
|
ops::ActivationKernel<paddle::platform::CPUDeviceContext,
|
|
|
|
@ -1106,7 +1106,7 @@ REGISTER_OPERATOR(
|
|
|
|
|
std::conditional<ops::CanInplaceAct<ops::PowGradFunctor<float>>(),
|
|
|
|
|
ops::ActFwdInplaceInferer, void>::type);
|
|
|
|
|
REGISTER_OPERATOR(pow_grad, ops::PowOpGrad,
|
|
|
|
|
ops::ActivationGradOpInplaceInference);
|
|
|
|
|
ops::ActivationGradOpInplaceInferer);
|
|
|
|
|
|
|
|
|
|
REGISTER_OP_CPU_KERNEL(
|
|
|
|
|
pow, ops::PowKernel<plat::CPUDeviceContext, ops::PowFunctor<float>>,
|
|
|
|
@ -1131,7 +1131,7 @@ REGISTER_OPERATOR(
|
|
|
|
|
std::conditional<ops::CanInplaceAct<ops::ExpGradFunctor<float>>(),
|
|
|
|
|
ops::ActFwdInplaceInferer, void>::type);
|
|
|
|
|
REGISTER_OPERATOR(exp_grad, ops::ActivationOpGrad,
|
|
|
|
|
ops::ActivationGradOpInplaceInference);
|
|
|
|
|
ops::ActivationGradOpInplaceInferer);
|
|
|
|
|
|
|
|
|
|
REGISTER_OP_CPU_KERNEL(exp,
|
|
|
|
|
ops::ActivationKernel<paddle::platform::CPUDeviceContext,
|
|
|
|
@ -1163,7 +1163,7 @@ REGISTER_OPERATOR(
|
|
|
|
|
std::conditional<ops::CanInplaceAct<ops::AbsGradFunctor<float>>(),
|
|
|
|
|
ops::ActFwdInplaceInferer, void>::type);
|
|
|
|
|
REGISTER_OPERATOR(abs_grad, ops::ActivationOpGrad,
|
|
|
|
|
ops::ActivationGradOpInplaceInference);
|
|
|
|
|
ops::ActivationGradOpInplaceInferer);
|
|
|
|
|
|
|
|
|
|
REGISTER_OP_CPU_KERNEL(abs,
|
|
|
|
|
ops::ActivationKernel<paddle::platform::CPUDeviceContext,
|
|
|
|
|