我刚刚开始学习使用TensorFlow进行机器学习,我想通过参加Kaggle上的泰坦尼克号-从灾难中学习机器学习比赛来测试我那还不够成熟的技能。这次比赛的数据可以在这里找到这里。
为了简化,我删除了所有字符串值,除了Sex
,我将其映射为male
为1
,female
为0
。
但是在模型训练过程中,所有纪元的损失值都是nan
。我不知道为什么会这样,如果有人能告诉我问题出在哪里,那将非常有帮助。
我的当前代码:
输出:
Epoch 1/253/3 [==============================] - 1s 102ms/step - loss: nan - val_loss: nanEpoch 2/253/3 [==============================] - 0s 15ms/step - loss: nan - val_loss: nanEpoch 3/253/3 [==============================] - 0s 14ms/step - loss: nan - val_loss: nanEpoch 4/253/3 [==============================] - 0s 19ms/step - loss: nan - val_loss: nanEpoch 5/253/3 [==============================] - 0s 22ms/step - loss: nan - val_loss: nanEpoch 6/253/3 [==============================] - 0s 22ms/step - loss: nan - val_loss: nanEpoch 7/253/3 [==============================] - 0s 17ms/step - loss: nan - val_loss: nanEpoch 8/253/3 [==============================] - 0s 17ms/step - loss: nan - val_loss: nanEpoch 9/253/3 [==============================] - 0s 17ms/step - loss: nan - val_loss: nanEpoch 10/253/3 [==============================] - 0s 20ms/step - loss: nan - val_loss: nanEpoch 11/253/3 [==============================] - 0s 17ms/step - loss: nan - val_loss: nanEpoch 12/253/3 [==============================] - 0s 19ms/step - loss: nan - val_loss: nanEpoch 13/253/3 [==============================] - 0s 17ms/step - loss: nan - val_loss: nanEpoch 14/253/3 [==============================] - 0s 17ms/step - loss: nan - val_loss: nanEpoch 15/253/3 [==============================] - 0s 18ms/step - loss: nan - val_loss: nanEpoch 16/253/3 [==============================] - 0s 17ms/step - loss: nan - val_loss: nanEpoch 17/253/3 [==============================] - 0s 15ms/step - loss: nan - val_loss: nanEpoch 18/253/3 [==============================] - 0s 18ms/step - loss: nan - val_loss: nanEpoch 19/253/3 [==============================] - 0s 19ms/step - loss: nan - val_loss: nanEpoch 20/253/3 [==============================] - 0s 16ms/step - loss: nan - val_loss: nanEpoch 21/253/3 [==============================] - 0s 19ms/step - loss: nan - val_loss: nanEpoch 22/253/3 [==============================] - 0s 20ms/step - loss: nan - val_loss: nanEpoch 23/253/3 [==============================] - 0s 18ms/step - loss: nan - val_loss: nanEpoch 24/253/3 [==============================] - 0s 13ms/step - loss: nan - val_loss: nanEpoch 25/253/3 [==============================] - 0s 18ms/step - loss: nan - val_loss: nan<tensorflow.python.keras.callbacks.History at 0x18bc9160dc0>
回答:
因为在这个数据集中,Age
列有一些空值。这就是为什么你会得到损失值为nan
的原因。
你可以删除Age
列或清理数据,使其没有空值。