【发布时间】:2019-07-16 09:04:39
【问题描述】:
我正在使用自动编码器对图像进行特征提取。我的图像是位图 => 像素值 = 0 或 1
我使用以下代码:
X_train_autoencodeur = X_train.reshape(-1, 96*96)
X_valid_autoencodeur=X_valid.reshape(-1,96*96)
input_img = Input(shape=(96*96,))
encoded = Dense(1024, activation='relu')(input_img)
encoded = Dense(512, activation='relu')(encoded)
encoded = Dense(256, activation='relu')(encoded)
encoded = Dense(128, activation='relu')(encoded)
decoded = Dense(256, activation='relu')(encoded)
decoded = Dense(512, activation='relu')(decoded)
decoded = Dense(1024, activation='relu')(decoded)
decoded = Dense(96*96, activation='sigmoid')(decoded)
autoencoder = Model(input_img, decoded)
autoencoder.compile(optimizer='adam', loss='binary_crossentropy')
autoencoder.fit(X_train_autoencodeur, X_train_autoencodeur,
epochs=100,
batch_size=256,
shuffle=True,
validation_data=(X_valid_autoencodeur, X_valid_autoencodeur))
然后我用
绘制重建图像decoded_imgs = autoencoder.predict(X_valid_autoencodeur)
plt.imshow(decoded_imgs[7].reshape(96,96))
经过 3 个 epoch 验证和训练损失达到非常低的值并且没有变化
重建后的图像全是黑色,特征向量都一样。
我已经将自动编码器训练了 100 个 epoch,我应该训练更多吗? 我的代码是否犯了错误,这可以解释糟糕的重建?
【问题讨论】:
标签: python keras autoencoder