Example #1
0
def _RsqrtGradGrad(op, grad):
  """Returns backprop gradient for f(a,b) = -0.5 * b * conj(a)^3."""
  a = op.inputs[0]  # a = x^{-1/2}
  b = op.inputs[1]  # backprop gradient for a
  with ops.control_dependencies([grad.op]):
    ca = math_ops.conj(a)
    cg = math_ops.conj(grad)
    grad_a = -1.5 * cg * b * math_ops.square(ca)
    # pylint: disable=protected-access
    grad_b = gen_math_ops._rsqrt_grad(ca, grad)
    return grad_a, grad_b
Example #2
0
def _RsqrtGradGrad(op, grad):
    """Returns backprop gradient for f(a,b) = -0.5 * b * conj(a)^3."""
    a = op.inputs[0]  # a = x^{-1/2}
    b = op.inputs[1]  # backprop gradient for a
    with ops.control_dependencies([grad]):
        ca = math_ops.conj(a)
        cg = math_ops.conj(grad)
        grad_a = -1.5 * cg * b * math_ops.square(ca)
        # pylint: disable=protected-access
        grad_b = gen_math_ops._rsqrt_grad(ca, grad)
        return grad_a, grad_b
Example #3
0
def _RsqrtGrad(op, grad):
  """Returns -0.5 * grad * conj(y)^3."""
  y = op.outputs[0]  # y = x^(-1/2)
  return gen_math_ops._rsqrt_grad(y, grad)
Example #4
0
def _RsqrtGrad(op, grad):
    """Returns -0.5 * grad * conj(y)^3."""
    y = op.outputs[0]  # y = x^(-1/2)
    # pylint: disable=protected-access
    return gen_math_ops._rsqrt_grad(y, grad)
Example #5
0
def _RsqrtGrad(op, grad):
  y = op.outputs[0]  # y = x^(-1/2)
  return gen_math_ops._rsqrt_grad(y, grad)
Example #6
0
def _RsqrtGrad(op, grad):
    """Returns -0.5 * grad * conj(y)^3."""
    y = op.outputs[0]  # y = x^(-1/2)
    return gen_math_ops._rsqrt_grad(y, grad)
Example #7
0
def _RsqrtGrad(op, grad):
  """Returns -0.5 * grad * conj(y)^3."""
  y = op.outputs[0]  # y = x^(-1/2)
  # pylint: disable=protected-access
  return gen_math_ops._rsqrt_grad(y, grad)
Example #8
0
def _RsqrtGrad(op, grad):
    y = op.outputs[0]  # y = x^(-1/2)
    return gen_math_ops._rsqrt_grad(y, grad)