Keras 神经网络&x27;s验证的准确性正在提高,但在学习过程中,准确性、损失和价值损失大多为*nan*

Keras 神经网络&x27;s验证的准确性正在提高,但在学习过程中,准确性、损失和价值损失大多为*nan*,keras,neural-network,model,loss-function,Keras,Neural Network,Model,Loss Function,当我使用Keras API运行基本神经网络时,验证精度正在提高,但精度,损失和val_损失主要是nan 运行环境和其他信息 Keras版本:“2.4.0” TensorFlow版本:“2.3.0” 操作系统:Ubuntu 20.04.1 LTS GPU:Radeon RX 580系列 Jupyter笔记本中运行的Python(我不知道库版本的问题) 我观察到的结果是: Epoch 1/15 23/23 - 0s - accuracy: 0.4823 - loss: nan - val_acc

当我使用Keras API运行基本神经网络时,验证精度正在提高,但精度损失val_损失主要是nan

运行环境和其他信息

  • Keras版本:“2.4.0”
  • TensorFlow版本:“2.3.0”
  • 操作系统:Ubuntu 20.04.1 LTS
  • GPU:Radeon RX 580系列
  • Jupyter笔记本中运行的Python(我不知道库版本的问题)
我观察到的结果是:

Epoch 1/15
23/23 - 0s - accuracy: 0.4823 - loss: nan - val_accuracy: 0.4637 - val_loss: nan
Epoch 2/15
23/23 - 0s - accuracy: nan - loss: nan - val_accuracy: 0.6425 - val_loss: nan
Epoch 3/15
23/23 - 0s - accuracy: nan - loss: 0.0000e+00 - val_accuracy: 0.6425 - val_loss: nan
Epoch 4/15
23/23 - 0s - accuracy: nan - loss: nan - val_accuracy: 0.6425 - val_loss: nan
Epoch 5/15
23/23 - 0s - accuracy: 0.5471 - loss: nan - val_accuracy: 0.6425 - val_loss: nan
Epoch 6/15
23/23 - 0s - accuracy: nan - loss: nan - val_accuracy: 0.6425 - val_loss: nan
Epoch 7/15
23/23 - 0s - accuracy: nan - loss: nan - val_accuracy: 0.6425 - val_loss: nan
Epoch 8/15
23/23 - 0s - accuracy: 0.5941 - loss: nan - val_accuracy: 0.5307 - val_loss: nan
Epoch 9/15
23/23 - 0s - accuracy: nan - loss: nan - val_accuracy: 0.5196 - val_loss: nan
Epoch 10/15
23/23 - 0s - accuracy: 0.6296 - loss: nan - val_accuracy: 0.5978 - val_loss: nan

感谢大家的帮助……

首先,您应该比较培训、验证和测试数据的准确性。 如果训练精度较低,模型不处理数据的复杂性,则应调整参数。 如果验证精度较低,则表示您的模型拟合过度
如果测试精度较低,则意味着您需要更多不同的训练数据

您的网络存在的问题是您有两个类(0和1),但您使用的是分类交叉熵损失,它适用于两个以上的类。您可能应该使用二进制交叉熵损失。而且,我也不确定softmax在这种情况下的工作情况如何,尝试添加sigmoid函数而不是softmax。理想情况下,两者的结果应该相同。

这个答案不准确。多类交叉熵损失应该以相同的方式仅适用于两类,并且只要softmax之前的最终输出是二维的(在本例中是二维的),softmax就可以了。感谢Niranjan和Mathais的输入。我认为马泰斯是对的。该故障本质上与丢失或激活功能无关。我尝试更改丢失和激活函数(为二进制交叉熵和sigmoid),但得到了不同类型的错误,如图所示:InvalidArgumentError:Size 1必须是非负的,而不是-4194304[[节点梯度带/二进制交叉熵/重塑(定义为:21)][Op:[推理\训练函数\函数42188]函数调用堆栈:训练函数
Epoch 1/15
23/23 - 0s - accuracy: 0.4823 - loss: nan - val_accuracy: 0.4637 - val_loss: nan
Epoch 2/15
23/23 - 0s - accuracy: nan - loss: nan - val_accuracy: 0.6425 - val_loss: nan
Epoch 3/15
23/23 - 0s - accuracy: nan - loss: 0.0000e+00 - val_accuracy: 0.6425 - val_loss: nan
Epoch 4/15
23/23 - 0s - accuracy: nan - loss: nan - val_accuracy: 0.6425 - val_loss: nan
Epoch 5/15
23/23 - 0s - accuracy: 0.5471 - loss: nan - val_accuracy: 0.6425 - val_loss: nan
Epoch 6/15
23/23 - 0s - accuracy: nan - loss: nan - val_accuracy: 0.6425 - val_loss: nan
Epoch 7/15
23/23 - 0s - accuracy: nan - loss: nan - val_accuracy: 0.6425 - val_loss: nan
Epoch 8/15
23/23 - 0s - accuracy: 0.5941 - loss: nan - val_accuracy: 0.5307 - val_loss: nan
Epoch 9/15
23/23 - 0s - accuracy: nan - loss: nan - val_accuracy: 0.5196 - val_loss: nan
Epoch 10/15
23/23 - 0s - accuracy: 0.6296 - loss: nan - val_accuracy: 0.5978 - val_loss: nan