I am implementing a convolutional autoencoder and I am having serious difficulty with finding the correct shapes for the convolution_transpose layers (in the decoder). So far my encoder looks like
('convolution', num_outputs=256, kernel_size=48, stride=2, padding="SAME")
('convolution', num_outputs=256, kernel_size=7, stride=1, padding="SAME" )
('convolution', num_outputs=256, kernel_size=7, stride=1, padding="SAME" )
('convolution', num_outputs=256, kernel_size=7, stride=1, padding="SAME" )
('convolution', num_outputs=256, kernel_size=7, stride=1, padding="SAME" )
('convolution', num_outputs=256, kernel_size=7, stride=1, padding="SAME" )
('convolution', num_outputs=256, kernel_size=7, stride=1, padding="SAME" )
('convolution', num_outputs=256, kernel_size=7, stride=1, padding="SAME" )
('convolution', num_outputs=256, kernel_size=32, stride=1, padding="SAME" )
Now, in the decoder I am trying to revert this. Using:
('convolution_transpose', num_outputs=256, kernel_size=32, stride=2, padding="SAME")
('convolution_transpose', num_outputs=256, kernel_size=7, stride=1, padding="SAME" )
('convolution_transpose', num_outputs=256, kernel_size=7, stride=1, padding="SAME" )
('convolution_transpose', num_outputs=256, kernel_size=7, stride=1, padding="SAME" )
('convolution_transpose', num_outputs=256, kernel_size=7, stride=1, padding="SAME" )
('convolution_transpose', num_outputs=256, kernel_size=7, stride=1, padding="SAME" )
('convolution_transpose', num_outputs=256, kernel_size=7, stride=1, padding="SAME" )
('convolution_transpose', num_outputs=256, kernel_size=7, stride=1, padding="SAME" )
('convolution_transpose', num_outputs=256, kernel_size=48, stride=2, padding="SAME" )
('convolution_transpose', num_outputs=1, kernel_size=48, stride=2, padding="SAME" )
I can't reproduce the size of the input.
Input Size: (10, 161, 1800, 1)
Output Size: (10, 3600, 1024, 1)
Any idea on what the correct settings for the decoder layer should be?