密集层的NaN输出

时间:2019-05-21 18:02:22

标签: keras

我正在尝试在具有许多功能的少数实例上训练一个简单的神经网络。我要训练8个实例,要测试3个实例(我知道,这很少,但是对我的应用程序有意义)。每个实例具有4212个特征,它们的浮动范围从0->到1000s。当将这些张量输入到我的第一个密集层中时,该层将输出所有NaN值。

我尝试更改损耗函数/优化器/精度/激活函数,除了从我的第一个致密层输出NaN之外,什么都没得到。

这是我构建和拟合模型的代码。我已经附加了显示张量输入和输出以及数据外观的输出。

model=Sequential()
model.add(Dense(50, input_dim=4212, activation='relu'))
model.add(Dense(25, activation='relu'))
model.add(Dense(1, activation='softmax'))
model.compile(loss='mse', optimizer='rmsprop', metrics=['accuracy'])
model.fit(X_train, Y_train, epochs=150, batch_size=BATCH_SIZE)

然后是我的数据以及每个张量的输出:

训练数据

[[ 0.00e+00  0.00e+00  0.00e+00 ...  1.43e+00 -1.24e-01 -7.60e-01]
 [ 1.27e+02  2.00e+00  2.00e+00 ...  2.40e-01 -1.90e-02 -3.90e-01]
 [ 2.80e+02  4.00e+00  4.00e+00 ...  1.29e+00  1.65e-01  1.62e+00]
 [ 4.21e+02  4.00e+00  4.00e+00 ...  7.70e-01  9.00e-03  2.10e-01]
 [ 5.81e+02  5.00e+00  5.00e+00 ...  9.90e-01  6.40e-02  5.30e-01]]

[50. 90. 92. 71. 67.]

验证数据

[[ 1.276e+03  1.000e+00  1.000e+00 ...  6.700e-01 -3.600e-02 -4.100e-01]
 [ 0.000e+00  0.000e+00  0.000e+00 ...  1.000e-02  3.000e-03  4.700e-01]
 [ 0.000e+00  0.000e+00  0.000e+00 ...  1.000e+00 -2.500e-02 -3.400e-01]]
[54.  2.  3.]

张量输入:

[[ 1.276e+03  1.000e+00  1.000e+00 ...  6.700e-01 -3.600e-02 -4.100e-01]
 [ 0.000e+00  0.000e+00  0.000e+00 ...  1.000e-02  3.000e-03  4.700e-01]
 [ 0.000e+00  0.000e+00  0.000e+00 ...  1.000e+00 -2.500e-02 -3.400e-01]]
[[nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan
  nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan
  nan nan nan nan nan nan nan nan nan nan nan nan nan nan]
 [nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan
  nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan
  nan nan nan nan nan nan nan nan nan nan nan nan nan nan]
 [nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan
  nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan
  nan nan nan nan nan nan nan nan nan nan nan nan nan nan]]
[[nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan
  nan nan nan nan nan nan nan]
 [nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan
  nan nan nan nan nan nan nan]
 [nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan
  nan nan nan nan nan nan nan]]

我正在尝试使用代表一个赛季美国职业棒球大联盟球员统计数据的矢量来预测他们下一赛季的得分。我希望现在的准确性会很差,但是我打算添加LSTM层,并在以后训练更多的球员职业。

关于我如何获取张量输出的更多代码

intermediate_layer_model = Model(inputs=model.input,
                                 outputs=model.layers[layer_name].input)
    intermediate_output = intermediate_layer_model.predict(V_data)
    print (intermediate_output)
    intermediate_layer_model = Model(inputs=model.input,
                                 outputs=model.layers[1].input)
    intermediate_output = intermediate_layer_model.predict(V_data)
    print (intermediate_output)
    intermediate_layer_model = Model(inputs=model.input,
                                 outputs=model.layers[2].input)
    intermediate_output = intermediate_layer_model.predict(V_data)
    print (intermediate_output)
    print(model.summary())

0 个答案:

没有答案