Add gradient registration for Abs. (#6139)

This commit is contained in:
Derek Murray 2020-12-16 08:32:10 -08:00 committed by GitHub
parent aa49e476b0
commit 8fd085801a
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
4 changed files with 13 additions and 0 deletions

View file

@ -1506,5 +1506,12 @@ IMPLEMENT_GRADIENT_BUILDER(GetClipGradient) {
return output;
}
IMPLEMENT_GRADIENT_BUILDER(GetAbsGradient) {
return std::vector<NodeDef>{
NodeDef("Sign", {I(0)}, {IA("Sign_Input")}),
NodeDef("Mul", {GO(0), IA("Sign_Input")}, {GI(0)})
};
}
} // namespace training
} // namespace onnxruntime

View file

@ -70,6 +70,7 @@ DECLARE_GRADIENT_BUILDER(GetExpGradient)
DECLARE_GRADIENT_BUILDER(GetFlattenGradient)
DECLARE_GRADIENT_BUILDER(GetTopKGradient)
DECLARE_GRADIENT_BUILDER(GetClipGradient)
DECLARE_GRADIENT_BUILDER(GetAbsGradient)
} // namespace training
} // namespace onnxruntime

View file

@ -101,6 +101,7 @@ void GradientBuilderRegistry::RegisterGradientBuilders() {
REGISTER_GRADIENT_BUILDER("Flatten", GetFlattenGradient);
REGISTER_GRADIENT_BUILDER("TopK", GetTopKGradient);
REGISTER_GRADIENT_BUILDER("Clip", GetClipGradient);
REGISTER_GRADIENT_BUILDER("Abs", GetAbsGradient);
};
} // namespace training

View file

@ -427,6 +427,10 @@ TEST(GradientCheckerTest, NegGrad) {
UnaryOpGradientTest("Neg");
}
TEST(GradientCheckerTest, AbsGrad) {
UnaryOpGradientTest("Abs");
}
TEST(GradientCheckerTest, LogGrad) {
TensorShape shape({2, 5, 6});