Devin Haslam
Devin Haslam

Reputation: 759

Deconvolutions/Transpose_Convolutions with tensorflow

I am attempting to use tf.nn.conv3d_transpose, however, I am getting an error indicating that my filter and output shape is not compatible.

Eventually, I want to have an output shape of [1,32,32,7,"does not matter"], but I am attempting to get a simple case to work first.

Since these tensors are compatible in a regular convolution, I believed that the opposite, a deconvolution, would also be possible.

Why is it not possible to perform a deconvolution on these tensors. Could I get an example of a valid filter size and output shape for a deconvolution on a tensor of shape [1,16,16,4,192]

Thank you.

Upvotes: 0

Views: 327

Answers (1)

BlueSun
BlueSun

Reputation: 3570

  • I have a tensor of size [1,16,16,4,192]
  • I am attempting to use a filter of [1,1,1,192,192]
  • I believe that the output shape would be [1,16,16,4,192]
  • I am using "same" padding and a stride of 1.

Yes the output shape will be [1,16,16,4,192]

Here is a simple example showing that the dimensions are compatible:

import tensorflow as tf

i = tf.Variable(tf.constant(1., shape=[1, 16, 16, 4, 192]))

w = tf.Variable(tf.constant(1., shape=[1, 1, 1, 192, 192]))

o = tf.nn.conv3d_transpose(i, w, [1, 16, 16, 4, 192], strides=[1, 1, 1, 1, 1])

print(o.get_shape())

There must be some other problem in your implementation than the dimensions.

Upvotes: 1

Related Questions