如何分别使用keen中的自动编码器的编码器?
问题描述:
我已经训练了以下的自动编码模式:如何分别使用keen中的自动编码器的编码器?
input_img = Input(shape=(1, 32, 32))
x = Convolution2D(16, 3, 3, activation='relu', border_mode='same')(input_img)
x = MaxPooling2D((2, 2), border_mode='same')(x)
x = Convolution2D(8, 3, 3, activation='relu', border_mode='same')(x)
x = MaxPooling2D((2, 2), border_mode='same')(x)
x = Convolution2D(8, 3, 3, activation='relu', border_mode='same')(x)
encoded = MaxPooling2D((2, 2), border_mode='same')(x)
x = Convolution2D(8, 3, 3, activation='relu', border_mode='same')(encoded)
x = UpSampling2D((2, 2))(x)
x = Convolution2D(8, 3, 3, activation='relu', border_mode='same')(x)
x = UpSampling2D((2, 2))(x)
x = Convolution2D(16, 3, 3, activation='relu',border_mode='same')(x)
x = UpSampling2D((2, 2))(x)
decoded = Convolution2D(1, 3, 3, activation='sigmoid', border_mode='same')(x)
autoencoder = Model(input_img, decoded)
autoencoder.compile(optimizer='RMSprop', loss='binary_crossentropy')
autoencoder.fit(X_train, X_train,
nb_epoch=1,
batch_size=128,
shuffle=True,
validation_data=(X_test, X_test)]
)
训练这个自动编码器我想用训练有素的编码器以用于监督行之后。我如何才能提取此自动编码器模型的训练编码器部分?
答
您可以只创建训练后的模型只使用编码器:
autoencoder = Model(input_img, encoded)
如果你想在编码部分后添加更多的层,你可以做到这一点还有:
classifier = Dense(nb_classes, activation='softmax')(encoded)
model = Model(input_img, classifier)
非常感谢你 – Codehead