简体   繁体   中英

Tensorflow - Dense and Convolutional layers connection

I'm new to Deep Learning and I can't find anywhere how to do the bottleneck in my AE with convolutional and dense layers. The code below is the specific part where I'm struggling:

...
encoded = Conv2D(8, (3, 3), activation='relu', padding='same')(encoded)

# encoded = Dense(2)(encoded) # Linear activation function at the bottleneck

decoded = Conv2D(8, (3, 3), activation='relu', padding='same')(decoded)
...

I tried some solutions, like flatten and reshape, but nothing seems to work here. The point is that I need the latent space to be a dense layer of 2 because I need to sample points [x,y] from it. I did it with MLP following this link ( https://www.kaggle.com/code/apapiu/manifold-learning-and-autoencoders/notebook ) and it worked, but I can't manage to do the same with my structure.

Thanks in advice, and best regards!

Convolution2D takes the input of a 4+ Dimension tensor , hence you need to reshape the input before passing it to Convolution2D layer. You can use a model like below.

input_img = Input(shape=(784,))
input_img1 = Reshape(target_shape=(28,28,1))(input_img)
encoded = Convolution2D(8, (3, 3), activation='relu', padding='same')(input_img1)
encoded = Dense(2)(encoded)
decoded1 = Convolution2D(8, (3, 3), activation='relu', padding='same')(encoded)
decoded2 = Flatten()(decoded1)
decoded = Dense(784,)(decoded2)

Please refer to this gist for complete code with random data.

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM