In tensorflow function tf.nn.conv2d, the padding option just has 'SAME' and 'VALID'.
But in the conv layer of Caffe, there is pad option can define the number of pixels to (implicitly) add to each side of the input.
How to achieve that in Tensorflow?
Thank you very much.
Used in the notebooks For each dimension D of input , paddings[D, 0] indicates how many values to add before the contents of tensor in that dimension, and paddings[D, 1] indicates how many values to add after the contents of tensor in that dimension.
To ensure that all the input sequence data is having the same length we pad or truncate the input data points. The deep learning model accepts the input data points of standardized tensors. We define the tensors as: tensor(batch_size, length_sequence,features)
Keras Conv2D is a 2D Convolution Layer, this layer creates a convolution kernel that is wind with layers input which helps produce a tensor of outputs.
You can use tf.pad()
(see the doc) to pad the Tensor before applying tf.nn.conv2d(..., padding="VALID")
(valid padding means no padding).
For instance, if you want to pad the image with 2 pixels in height, and 1 pixel in width, and then apply a convolution with a 5x5 kernel:
input = tf.placeholder(tf.float32, [None, 28, 28, 3])
padded_input = tf.pad(input, [[0, 0], [2, 2], [1, 1], [0, 0]], "CONSTANT")
filter = tf.placeholder(tf.float32, [5, 5, 3, 16])
output = tf.nn.conv2d(padded_input, filter, strides=[1, 1, 1, 1], padding="VALID")
output
will have shape [None, 28, 26, 16]
, because you have only a padding of 1 in width.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With