def testMaxPoolGradEagerShapeErrors(self): with context.eager_mode(): orig_in = array_ops.ones((1, 1, 1, 1, 1)) # Test invalid orig_out shape orig_out = array_ops.ones((1, 1, 1, 1, 2)) grad = array_ops.ones((1, 1, 1, 1, 1)) with self.assertRaisesRegex( errors_impl.InvalidArgumentError, r"Expected orig_output shape to be \[1,1,1,1,1\], but got " r"\[1,1,1,1,2\]"): gen_nn_ops.max_pool3d_grad(orig_in, orig_out, grad, ksize=[1, 1, 1, 1, 1], strides=[1, 1, 1, 1, 1], padding="VALID") with self.assertRaisesRegex( errors_impl.InvalidArgumentError, r"Expected orig_output shape to be \[1,1,1,1,1\], but got " r"\[1,1,1,1,2\]"): gen_nn_ops.max_pool3d_grad_grad(orig_in, orig_out, grad, ksize=[1, 1, 1, 1, 1], strides=[1, 1, 1, 1, 1], padding="VALID") # Test invalid grad shape orig_out = array_ops.ones((1, 1, 1, 1, 1)) grad = array_ops.ones((1, 1, 1, 1, 2)) with self.assertRaisesRegex( errors_impl.InvalidArgumentError, r"Expected grad shape to be \[1,1,1,1,1\], but got \[1,1,1,1,2\]" ): gen_nn_ops.max_pool3d_grad(orig_in, orig_out, grad, ksize=[1, 1, 1, 1, 1], strides=[1, 1, 1, 1, 1], padding="VALID") with self.assertRaisesRegex( errors_impl.InvalidArgumentError, r"Expected grad shape to be \[1,1,1,1,1\], but got \[1,1,1,1,2\]" ): gen_nn_ops.max_pool3d_grad_grad(orig_in, orig_out, grad, ksize=[1, 1, 1, 1, 1], strides=[1, 1, 1, 1, 1], padding="VALID")
def _MaxPool3DGrad(op, grad): return gen_nn_ops.max_pool3d_grad(op.inputs[0], op.outputs[0], grad, ksize=op.get_attr("ksize"), strides=op.get_attr("strides"), padding=op.get_attr("padding"), data_format=op.get_attr("data_format"))
def _MaxPool3DGrad(op, grad): return gen_nn_ops.max_pool3d_grad( op.inputs[0], op.outputs[0], grad, ksize=op.get_attr("ksize"), strides=op.get_attr("strides"), padding=op.get_attr("padding"), data_format=op.get_attr("data_format").decode())
def _MaxPool3DGradGradGrad(op, grad): return (array_ops.zeros_like(op.inputs[0]), array_ops.zeros_like(op.inputs[1]), gen_nn_ops.max_pool3d_grad( op.inputs[0], op.inputs[1], grad, op.get_attr("ksize"), op.get_attr("strides"), padding=op.get_attr("padding"), data_format=op.get_attr("data_format").decode()))
def _MaxPool3DGradGradGrad(op, grad): return (array_ops.zeros(shape=array_ops.shape(op.inputs[0]), dtype=op.inputs[0].dtype), array_ops.zeros(shape=array_ops.shape(op.inputs[1]), dtype=op.inputs[1].dtype), gen_nn_ops.max_pool3d_grad(op.inputs[0], op.inputs[1], grad, op.get_attr("ksize"), op.get_attr("strides"), padding=op.get_attr("padding"), data_format=op.get_attr("data_format")))
def _MaxPool3DGradGradGrad(op, grad): return (array_ops.zeros( shape=array_ops.shape(op.inputs[0]), dtype=op.inputs[0].dtype), array_ops.zeros( shape=array_ops.shape(op.inputs[1]), dtype=op.inputs[1].dtype), gen_nn_ops.max_pool3d_grad( op.inputs[0], op.inputs[1], grad, op.get_attr("ksize"), op.get_attr("strides"), padding=op.get_attr("padding"), data_format=op.get_attr("data_format").decode()))
def _z_dtd(layer, R, parameter1, parameter2): print('_maxpooling3d_z_dtd') Z = layer.output + 1e-12 S = R / Z C = gen_nn_ops.max_pool3d_grad( layer.input, Z, S, ksize=(1, ) + layer.pool_size + (1, ), strides=(1, ) + layer.strides + (1, ), padding=K.tensorflow_backend._preprocess_padding(layer.padding)) return layer.input * C