def _ReluGrad(op, grad): return gen_nn_ops.relu_grad(grad, op.outputs[0])
def _ReluGradGrad(op, grad): x = op.inputs[1] return (gen_nn_ops.relu_grad(grad, x), array_ops.zeros(shape=array_ops.shape(x), dtype=x.dtype))
def _ReluGradGrad(op, grad): x = op.inputs[1] return (gen_nn_ops.relu_grad(grad, x), array_ops.zeros(shape=array_ops.shape(x), dtype=x.dtype))
def _ReluGrad(op, grad): return gen_nn_ops.relu_grad(grad, op.outputs[0])
def _GuidedReluGrad(op, grad): return tf.where(0. < grad, gen_nn_ops.relu_grad(grad, op.outputs[0]), tf.zeros(tf.shape(grad)))
pconv1 = activ(conv1) conv2 = conv2d(pconv1, weights['wc2'], biases['bc2'], 'SAME') pool1 = maxpool(conv2, k=2) pconv2 = activ(pool1) conv3 = conv2d(pconv2, weights['wc3'], biases['bc3'], 'SAME') pconv3 = activ(conv3) conv4 = conv2d(pconv3, weights['wc4'], biases['bc4'], 'SAME') pool2 = maxpool(conv4, k=2) pconv4 = activ(pool2) conv5 = conv2d(pconv4, weights['wc5'], biases['bc5'], 'SAME') pconv5 = activ(conv5) conv6 = conv2d(pconv5, weights['wc6'], biases['bc6'], 'VALID') pool3 = maxpool(conv6, k=2) pconv6 = activ(pool3) grad_pre_relu6 = tf.where(0. < grad, gen_nn_ops.relu_grad(grad, pool3), tf.zeros(grad.get_shape())) grad_conv5 = tf.gradients(pool3, pconv5, grad_ys=grad_pre_relu6)[0] grad_pre_relu5 = tf.where(0. < grad_conv5, gen_nn_ops.relu_grad(grad_conv5, conv5), tf.zeros((1, 16, 16, 64))) grad_conv4 = tf.gradients(conv5, pconv4, grad_ys=grad_pre_relu5)[0] grad_pre_relu4 = tf.where(0. < grad_conv4, gen_nn_ops.relu_grad(grad_conv4, pool2), tf.zeros((1, 16, 16, 64))) grad_conv3 = tf.gradients(pool2, pconv3, grad_ys=grad_pre_relu4)[0] grad_pre_relu3 = tf.where(0. < grad_conv3, gen_nn_ops.relu_grad(grad_conv3, conv3),
def _ReluGradGrad(op, grad): x = op.inputs[1] return (gen_nn_ops.relu_grad(grad, x), array_ops.zeros_like(x))