tensorflow 计算潜在空间的维数

sc4hvdpw  于 2022-12-13  发布在  其他
关注(0)|答案(1)|浏览(155)

我正在实现一个自动编码器,我想计算潜在空间的维度。
假设我想要一个3D的潜在空间。那么从我的代码如何计算当前的潜在空间。谢谢
我当前代码:

x = Input(shape=(28, 28,1)) 

# Encoder
conv1_1 = Conv2D(16, (3, 3), activation='relu', padding='same')(x)
pool1 = MaxPooling2D((2, 2))(conv1_1)
conv1_2 = Conv2D(8, (3, 3), activation='relu', padding='same')(pool1)
pool2 = MaxPooling2D((2, 2))(conv1_2)
conv1_3 = Conv2D(8, (3, 3), activation='relu', padding='same')(pool2)
h = MaxPooling2D((2, 2))(conv1_3)

# Decoder
conv2_1 = Conv2D(8, (3, 3), activation='relu', padding='same')(h)
up1 = UpSampling2D((2, 2))(conv2_1)
conv2_2 = Conv2D(8, (3, 3), activation='relu', padding='same')(up1)
up2 = UpSampling2D((2, 2))(conv2_2)
conv2_3 = Conv2D(16, (3, 3), activation='relu')(up2)
up3 = UpSampling2D((2, 2))(conv2_3)
r = Conv2D(1, (3, 3), activation='sigmoid', padding='same')(up3)

autoencoder = Model(inputs=x, outputs=r)
autoencoder.compile(optimizer='adadelta', loss='binary_crossentropy')
sgtfey8w

sgtfey8w1#

自动编码器的架构呈漏斗形,从输入层到称为“潜在空间”的层(以红色显示),节点数逐渐减少。从潜在空间开始,节点数似乎再次增加,直到到达输出层,在输出层,节点数等于输入层中的节点数。

从模型概要中我们可以看出,第7层是潜在空间,是输入数据的压缩形式。

tf.keras.backend.ndim(autoencoder.layers[6].output)

要从模型中获取特定层的尺寸,您可以使用上面的API。谢谢!

相关问题