Invertible ReluGrad (#8773)

* Invertible Relu Grad
This commit is contained in:
Sherlock 2021-08-19 11:29:05 -07:00 committed by GitHub
parent 2beb873c6b
commit 81889a1cf6
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
2 changed files with 4 additions and 2 deletions

View file

@ -71,7 +71,8 @@ static std::unordered_map<std::string, std::unordered_set<size_t>>
{"Clip", {1, 2}},
{"Pad", {1, 2}}};
static std::unordered_set<std::string> INVERTIBLE_OPS{"LayerNormalization"};
static std::unordered_set<std::string> INVERTIBLE_OPS{"LayerNormalization",
"Relu"};
class GradientGraphBuilder {
public:

View file

@ -783,9 +783,10 @@ IMPLEMENT_GRADIENT_BUILDER(GetGatherElementsGradient) {
};
IMPLEMENT_GRADIENT_BUILDER(GetReluGradient) {
ArgDef mask = IsTensorStashed(O(0, false).name) ? O(0) : I(0);
return std::vector<NodeDef>{
NodeDef(OpDef{"ReluGrad", kMSDomain, 1},
{GO(0), O(0)},
{GO(0), mask},
{GI(0)})};
}