【发布时间】:2020-02-25 13:28:01
【问题描述】:
我的损失非常高(170+)。我正在制作一个具有 3 个隐藏层的自动编码器,并使用 SGD 作为我的优化器。我使用 cross_entropy 作为我的损失函数。同样,最初,我得到的准确度非常好(大约 0.88),但几乎在每个 epoch 后都会降低。
这是我的代码:
encoding_dim=8
i=Input(shape=(60,))
encoded=Dense(30,activation='sigmoid')(i)
encoded1=Dense(15,activation='sigmoid')(encoded)
encoded2=Dense(8,activation='relu')(encoded1)
#encoded=Dense(encoding_dim,activation='sigmoid')(encoded2)
decoded=Dense(15,activation='sigmoid')(encoded2)
decoded2 =Dense(30,activation='sigmoid')(decoded)
decoded3 =Dense(60,activation='sigmoid')(decoded2)
autoencoder = Model(i, decoded3)
ec = Model(i,encoded)
encoded_input=Input(shape=(encoding_dim,))
decoder_layer=autoencoder.layers[-3](encoded_input)
decoder_layer=autoencoder.layers[-2](decoder_layer)
decoder_layer=autoencoder.layers[-1](decoder_layer)
decoder = Model(encoded_input, decoder_layer)
from keras.optimizers import SGD
opt = SGD(lr=0.06)
#model.compile(loss = "categorical_crossentropy", optimizer = opt)
autoencoder.compile(loss = "categorical_crossentropy", optimizer = opt,metrics=['accuracy'])
autoencoder.fit(X_Train, X_Train,
epochs=200,
batch_size=200,
shuffle=True,
validation_data=(X_Test, X_Test))
#encoded_out= ec.predict(X_Test)
#decoded_out=decoder.predict(encoded_out)
【问题讨论】:
标签: python machine-learning keras deep-learning autoencoder