python - 训练和验证损失过快变得恒定
问题描述
n_inputs 定义为-
n_inputs = X.shape[1]
其值为 25
我的模特——
# define encoder
visible = Input(shape=(n_inputs,))
# encoder level 1
'''
e = Dense(400)(visible)
e = Dropout(0.05)(e)
e = ReLU()(e)
'''
# encoder level 2
e = Dense(300)(visible)
e = Dropout(0.05)(e)
e = ReLU()(e)
# encoder level 3
e = Dense(200)(visible)
e = Dropout(0.05)(e)
e = ReLU()(e)
# encoder level 4
e = Dense(100)(visible)
e = Dropout(0.05)(e)
e = ReLU()(e)
# encoder level 4
e = Dense(50)(visible)
e = Dropout(0.05)(e)
e = ReLU()(e)
# bottleneck
n_bottleneck = n_inputs
bottleneck = Dense(n_bottleneck)(e)
# define decoder, level 1
d = Dense(50)(bottleneck)
d = Dropout(0.05)(d)
d = ReLU()(d)
# define decoder, level 2
d = Dense(100)(bottleneck)
d = Dropout(0.05)(d)
d = ReLU()(d)
# define decoder, level 3
d = Dense(200)(bottleneck)
d = Dropout(0.05)(d)
d = ReLU()(d)
# define decoder, level 4
d = Dense(300)(bottleneck)
d = Dropout(0.05)(d)
d = ReLU()(d)
'''
# define decoder, level 4
d = Dense(400)(bottleneck)
d = Dropout(0.05)(d)
d = ReLU()(d)
'''
# output layer
output = Dense(n_inputs, activation='sigmoid')(d)
# define autoencoder model
model = Model(inputs=visible, outputs=output)
# compile autoencoder model
opt = keras.optimizers.Adam(lr=0.00001)
es = EarlyStopping(monitor='val_loss', mode='min', verbose=1,patience=10)
model.compile(optimizer=opt, loss='binary_crossentropy')
# plot the autoencoder
#plot_model(model, 'drive/MyDrive/autoencoder_no_compress.png', show_shapes=True)
# fit the autoencoder model to reconstruct input
history = model.fit(X_train_norm, X_train_norm, epochs=500, batch_size=64, verbose=2, validation_split=0.1,callbacks=[es])
我的损失图-
训练和验证损失很快就会变得恒定,并且在 20 个 epoch 之后也不会发生变化。我的模型对于数据来说太复杂还是太简单以至于它也不会通过增加时期来过度拟合?
我已经规范化了我的数据,改变了各种学习率,运行了 500 轮回调
解决方案
推荐阅读
- firefox - 如何从 Firefox 的 URL 栏中删除右箭头?
- ios - 使用 CoreData 和 SwiftUI 更改 To Many 项目的顺序
- javascript - 在单个画布上滚动显示 3d 场景过渡,threejs
- javascript - 如何在表格元素vue js中格式化货币列
- reactjs - 如何在 react-admin 中执行多个过滤器?
- visual-studio - 如何在 Visual Studio 2019 中创建 Azure 函数?
- reactjs - React-typescript:对象的类型为“未知”。TS2571
- typescript - 如果未定义,则不要返回泛型类型
- java - 比较java中出错的sql日期
- css - 在反应项目目录中放置css重置的位置