损失:nan Keras回归

2024-10-03 15:28:16 发布

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

我试图预测一个连续值(第一次使用NN)。我已经把输入数据标准化了。我不明白为什么我得了a露丝:楠从第一个历元开始输出。我阅读并尝试了以前对同一问题的回答中的许多建议,但没有一个对我有帮助。我的培训数据形状是:(201917,64)

我的代码是:

model = Sequential()
model.add(Dense(100, input_dim=X.shape[1], activation='relu'))
model.add(Dense(100, activation='relu'))
model.add(Dense(100, activation='relu'))

# Output layer
model.add(Dense(1, activation='linear'))

# Construct the neural network inside of TensorFlow
model.compile(loss='mean_squared_error', optimizer='Adam')

# train the model
model.fit(X_train, y_train, epochs=10, batch_size=32,
shuffle=True, verbose=2)

谢谢!在


Tags: the数据代码addmodeltrainnnactivation
2条回答

简而言之,您可以通过以下步骤找到问题的原因:

  1. 确保您的数据集是正确的:

    • 在数据集中查找任何nan/inf并修复它。在
    • 编码错误(将其转换为UTF-8)。在
    • 列或行中的值无效。在
  2. 使用Dropout批次规范化L1/L2正则化,更改批次大小,或将数据缩放到其他范围(例如[-1,1])。

  3. 缩小网络规模。在
  4. 更改其他超参数(例如优化器激活函数)。在

您可以检查thisthis链接以获得额外帮助。在

当学习率太高时,有时会有损失。一个解决办法可能是减少它。在

替换此代码:

# Construct the neural network inside of TensorFlow
model.compile(loss='mean_squared_error', optimizer='Adam')

有:

^{pr2}$

看看有没有帮助。我也会先尝试一个隐藏层,然后看看它会怎么样。在

相关问题 更多 >