aboutsummaryrefslogtreecommitdiffhomepage
path: root/tensorflow/cc/gradients
diff options
context:
space:
mode:
authorGravatar Martin Wicke <wicke@google.com>2017-09-02 19:21:45 -0700
committerGravatar TensorFlower Gardener <gardener@tensorflow.org>2017-09-02 19:25:56 -0700
commitd57572e996dce24abf4d9cf6ea04e7104b3d743b (patch)
treeec8f6620e0f3231a8b739a2b6574a2db813e85b3 /tensorflow/cc/gradients
parentddba1e0aadabe26063a28c5d1c48e2cfce44e30f (diff)
Merge changes from github.
PiperOrigin-RevId: 167401527
Diffstat (limited to 'tensorflow/cc/gradients')
-rw-r--r--tensorflow/cc/gradients/nn_grad.cc8
-rw-r--r--tensorflow/cc/gradients/nn_grad_test.cc8
2 files changed, 16 insertions, 0 deletions
diff --git a/tensorflow/cc/gradients/nn_grad.cc b/tensorflow/cc/gradients/nn_grad.cc
index 6fc73c3fa1..ccb58e7f91 100644
--- a/tensorflow/cc/gradients/nn_grad.cc
+++ b/tensorflow/cc/gradients/nn_grad.cc
@@ -95,6 +95,14 @@ Status SeluGradHelper(const Scope& scope, const Operation& op,
}
REGISTER_GRADIENT_OP("Selu", SeluGradHelper);
+Status L2LossGrad(const Scope& scope, const Operation& op,
+ const std::vector<Output>& grad_inputs,
+ std::vector<Output>* grad_outputs) {
+ grad_outputs->push_back(Mul(scope, op.input(0), grad_inputs[0]));
+ return scope.status();
+}
+REGISTER_GRADIENT_OP("L2Loss", L2LossGrad);
+
Status BiasAddGradHelper(const Scope& scope, const Operation& op,
const std::vector<Output>& grad_inputs,
std::vector<Output>* grad_outputs) {
diff --git a/tensorflow/cc/gradients/nn_grad_test.cc b/tensorflow/cc/gradients/nn_grad_test.cc
index f9a512f29e..affc1e1dbe 100644
--- a/tensorflow/cc/gradients/nn_grad_test.cc
+++ b/tensorflow/cc/gradients/nn_grad_test.cc
@@ -122,6 +122,14 @@ TEST_F(NNGradTest, SeluGrad) {
RunTest(x, x_init_value, y, shape);
}
+TEST_F(NNGradTest, L2LossGrad) {
+ TensorShape x_shape({5, 2});
+ TensorShape y_shape({1});
+ auto x = Placeholder(scope_, DT_FLOAT, Placeholder::Shape(x_shape));
+ auto y = L2Loss(scope_, x);
+ RunTest(x, x_shape, y, y_shape);
+}
+
TEST_F(NNGradTest, BiasAddGradHelper) {
TensorShape shape({4, 5});
TensorShape bias_shape({5});