如何减少keras顺序模式的损失

2024-04-25 16:44:37 发布

您现在位置:Python中文网/ 问答频道 /正文

我希望能得到一些指导,告诉我下一步应该采取什么步骤来模拟某个系统。它包含3个自变量,24个因变量,约21000行。在我的建模尝试中,我无法得到超过50%的准确率或低于6500%的损失。我一直在使用以下代码的变体:

EPOCHS = 30
#OPTIMIZER = 'adam'
#OPTIMIZER = 'adagrad'
BATCH_SIZE = 10
OUTPUT_UNITS = len(y.columns)
print(f'OUTPUT_UNITS: {OUTPUT_UNITS}')

model = Sequential()
model.add(Dense(8, activation='relu', input_dim=3)) # 3 X parameters, with eng_speed removed
#model.add(Dense(8, activation='relu', input_dim=4)) # 4 X parameters
model.add(Dense(32, activation='relu' ))
#model.add(Dense(64, activation='relu' ))
#model.add(Dense(12, activation='relu' ))
model.add(Dense(OUTPUT_UNITS)) # number of predicted (y) values (labels)
model.summary()

adadelta = optimizers.Adadelta()
adam = optimizers.Adam(lr=0.001)

model.compile(optimizer=adadelta, loss='mse', metrics=['accuracy'])
#model.compile(optimizer=opt, loss='mse', metrics=['accuracy'])
history = model.fit(x=X_train, y=y_train, epochs=EPOCHS, batch_size=BATCH_SIZE)

我尝试过移除和添加层,改变层的大小,不同的优化器,学习率,等等。下面两个图是我看到的典型图——它们都很快变平,然后没有改善:

enter image description here

enter image description here

我对这一点显然是个新手,如果有人给我指出正确的方向,我会很感激的:尝试的方法,阅读的内容,等等。提前谢谢。你知道吗


Tags: addinputoutputsizemodelbatchactivationdense
1条回答
网友
1楼 · 发布于 2024-04-25 16:44:37

因为(根据你的mse损失和你的regression标签)你处于回归设置中,所以精确度是没有意义的(它只在分类设置中使用);请在What function defines accuracy in Keras when the loss is mean squared error (MSE)?中查看自己的答案

考虑到这一点,原则上绝对没有理由认为损失6500英镑为“高”,因此需要改进。。。你知道吗

相关问题 更多 >