0
$\begingroup$

I have an autoencder that encodes an input size of (76, 400, 1) in a 2D convolutional layer, and decodes it an output size of (125, 400, 1). Both downsampling and upsampling are performed using a 'stride = (2, 2)'. Using max pooling instead of striding produces the same behavior.

Here is a summary of the network:

_________________________________________________________________
 Layer (type)                Output Shape              Param #   
=================================================================
 Input1 (InputLayer)         [(None, 76, 400, 1)]      0         
                                                                 
 conv2d_0 (Conv2D)           (None, 38, 200, 32)       416       
                                                                 
 conv2d_1 (Conv2D)           (None, 38, 100, 64)       16448     
                                                                 
 conv2d_2 (Conv2D)           (None, 19, 50, 128)       65664     
                                                                 
 conv2d_3 (Conv2D)          (None, 10, 25, 256)       393472    
   
                                                              
 ConvT_0 (Conv2DTranspose)  (None, 20, 50, 256)      590080    
                                                                                                                         
 ConvT_1 (Conv2DTranspose)   (None, 40, 100, 128)     295040    
                                                                                                                      
 ConvT_2 (Conv2DTranspose)  (None, 80, 200, 64)      73792     
                                                                                                                          
 ConvT_3 (Conv2DTranspose)  (None, 160, 400, 32)     18464     
                                                                                                                          
 ConvT_Cropped (Cropping2D)  (None, 125, 400, 32)     0                                                            
                                                                 
 outputLyr (Conv2D)    (None, 125, 400, 1)       289       
                                                                 

The output should look something like,

True Output

But, instead, the network recovers the following image,

Network Output

What could cause this behavior?

$\endgroup$

0

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.