Keras模型的损失从0开始,但有时只是

时间:2018-08-29 20:10:14

标签: python tensorflow keras lstm

我试图了解哪些输入参数可能对我的数据有效,因此我正在训练多个模型并尝试比较结果。由于某些原因,即使精度非常低,某些模型启动也会损失0。 我的代码如下: first=keras.models.Sequential() first.add(keras.layers.LSTM(100, activation = 'tanh', input_shape = (X.shape[1], 1), return_sequences = True)) first.add(keras.layers.Dense(Y.shape[2], activation = 'softmax')) first.compile(optimizer = 'rmsprop', loss = 'categorical_crossentropy', metrics=['categorical_accuracy']) models["first"]=first

,我有一系列的代码块,就像在每个代码块中更改一些参数一样。 甚至在我尝试拟合之前,其中的某些损失已经为0(或2.79e-7),但是并没有任何真正的一致性。有时第一个模型会遇到这个问题,有时会出现第三个问题。我什至尝试仅在发生这种情况时重新生成数据和模型,但是当我这样做时,损失== 0问题的几率似乎增加了。 输入数据的格式为[[[5],[7],[3] ...] ...],在我通过keras.utils.to_categorical运行它们之前,标签是相同的,现在很热。我很确定输入和标签正确,因为任何给定的模型在大多数情况下都能正常工作。

任何建议此时都将是​​有用的。

编辑:这似乎仅在GPU上运行时发生。当我强制TensorFolw仅在CPU上运行时,没有任何问题。知道什么原因会导致GPU出现问题吗?

1 个答案:

答案 0 :(得分:0)

尝试设置随机种子以提高可重复性:

random.seed(10)

此外,如果模型是无状态的,则在每个序列处都将重置单元状态。但是,如果不是这样(例如,如果您使用stateful = True),则在每次训练后您都需要重置状态。