Keras 模型似乎不起作用

Posted

技术标签:

【中文标题】Keras 模型似乎不起作用【英文标题】:Keras model doesn't seem to work 【发布时间】:2018-11-27 09:07:11 【问题描述】:

我有以下 keras 模型,当我训练模型时,它似乎没有从中学习。我四处询问并得到了不同的建议,例如权重没有正确初始化或没有发生反向传播。型号为:

model.add(Conv2D(32, (3, 3), kernel_initializer='random_uniform', activation='relu', input_shape=(x1, x2, depth)))
model.add(MaxPool2D(pool_size=(2, 2)))

model.add(Conv2D(64, (3, 3), activation='relu'))
model.add(MaxPool2D(pool_size=(2, 2)))

model.add(Flatten())

model.add(Dense(128, activation='relu'))

model.add(Dense(3, activation='softmax'))

我什至查看了this 解决方案,但我似乎没有这样做。最后我有softmax。供您参考,我有训练过程的输出:

Epoch 1/10
283/283 [==============================] - 1s 2ms/step - loss: 5.1041 - acc: 0.6254 - val_loss: 9.0664 - val_acc: 0.4375
Epoch 2/10
283/283 [==============================] - 0s 696us/step - loss: 4.9550 - acc: 0.6926 - val_loss: 9.0664 - val_acc: 0.4375
Epoch 3/10
283/283 [==============================] - 0s 717us/step - loss: 4.9550 - acc: 0.6926 - val_loss: 9.0664 - val_acc: 0.4375
Epoch 4/10
283/283 [==============================] - 0s 692us/step - loss: 4.9550 - acc: 0.6926 - val_loss: 9.0664 - val_acc: 0.4375
Epoch 5/10
283/283 [==============================] - 0s 701us/step - loss: 4.9550 - acc: 0.6926 - val_loss: 9.0664 - val_acc: 0.4375
Epoch 6/10
283/283 [==============================] - 0s 711us/step - loss: 4.9550 - acc: 0.6926 - val_loss: 9.0664 - val_acc: 0.4375
Epoch 7/10
283/283 [==============================] - 0s 707us/step - loss: 4.9550 - acc: 0.6926 - val_loss: 9.0664 - val_acc: 0.4375
Epoch 8/10
283/283 [==============================] - 0s 708us/step - loss: 4.9550 - acc: 0.6926 - val_loss: 9.0664 - val_acc: 0.4375
Epoch 9/10
283/283 [==============================] - 0s 703us/step - loss: 4.9550 - acc: 0.6926 - val_loss: 9.0664 - val_acc: 0.4375
Epoch 10/10
283/283 [==============================] - 0s 716us/step - loss: 4.9550 - acc: 0.6926 - val_loss: 9.0664 - val_acc

这就是我的编译方式:

sgd = optimizers.SGD(lr=0.001, decay=1e-4, momentum=0.05, nesterov=True)

model.compile(loss='categorical_crossentropy',
              optimizer=sgd,
              metrics=['accuracy'])

有什么建议吗?我错过了什么?我已经正确初始化了权重,而 keras 似乎可以处理反向传播。我错过了什么?

【问题讨论】:

这是一个三分类问题吗? 是的。它是一个 3 类分类。 【参考方案1】:

我找到了解决方案。我必须对图像进行标准化/缩放以进行适当的训练。现在训练正常。这是帮助我的link。

【讨论】:

以上是关于Keras 模型似乎不起作用的主要内容,如果未能解决你的问题,请参考以下文章

使用基本的低级 TensorFlow 训练循环训练 tf.keras 模型不起作用

.h5 keras 模型到 coreml 的分类转换在 IOS 中不起作用

用于多输入模型的 R Keras predict_prob 不起作用。我可以成功地训练模型,但是在评分时出现错误

重新加载的 Spark 模型似乎不起作用

Keras Autoencoder:将权重从编码器绑定到解码器不起作用

VS 2010 - 带有 MySql 存储过程的实体框架似乎不起作用