【问题标题】:Keras Logistic Regression returns nan on first epochKeras Logistic 回归在第一个时期返回 nan
【发布时间】:2017-04-16 01:05:41
【问题描述】:

我有一个非常简单的数据集。我清理了数据(一个热编码,规范化数据并检查缺失值或 NaN),我的学习率非常小。但是当尝试使用 Keras 和 Theano 作为后端运行一个简单的逻辑回归时

model = Sequential() 
model.add(Dense(input_dim=84, activation='softmax',
            bias_initializer='normal', units=6)) 
rms = RMSprop(lr=0.001, rho=0.9, epsilon=1e-08, decay=0.0)
model.compile(optimizer=rms, loss='categorical_crossentropy')


batch_size = 100
nb_epoch = 1
n = X.shape[0] # number of training examples
history = model.fit(X, Y_oh, batch_size=batch_size, epochs=nb_epoch)

错误:

Epoch 1/1
5459/5459 [==============================] - 0s - loss: nan

我检查了here 并尝试将 Theano 降级到提到的版本,但仍然出现相同的错误

这是 X 的样子

[[ 0.35755179  0.13747887  0.3        ...,  0.          0.          0.        ]
 [ 0.36401758  0.14963742  0.55       ...,  0.          0.          0.        ]
 [ 0.37889517  0.13775149  0.275      ...,  0.          0.          0.        ]
 ..., 
 [ 0.34387947  0.18706723  0.05       ...,  0.          0.          0.        ]
 [ 0.35708726  0.12905512  0.75       ...,  0.          0.          0.        ]
 [ 0.37915882  0.08061174  0.05       ...,  0.          1.          0.        ]]

和Y_oh(使用以下代码生成):

Y_oh = np_utils.to_categorical(Y.T[0],6)

[[ 0.  0.  0.  0.  0.  1.]
 [ 0.  0.  0.  0.  0.  1.]
 [ 0.  0.  0.  0.  0.  1.]
 ..., 
 [ 1.  0.  0.  0.  0.  0.]
 [ 1.  0.  0.  0.  0.  0.]
 [ 1.  0.  0.  0.  0.  0.]]

【问题讨论】:

    标签: python theano keras logistic-regression


    【解决方案1】:

    问题是你在这里激活

    model.add(Dense(input_dim=84, activation='softmax',
                bias_initializer='normal', units=6)) 
    

    将 'softmax' 替换为 'sigmoid'(或 'tanh'),你应该会很好。

    Softmax具有其输出之和为1的性质,因此网络的输出具有概率解释。问题是,由于您只有 1 个输出,它要么永远不会训练(因为输出将 始终保持相同)或尝试这样做时获得不合理的渐变。

    例如修复

    model.add(Dense(input_dim=84, activation='sigmoid',
                bias_initializer='normal', units=6)) 
    

    【讨论】:

      【解决方案2】:

      尝试应用 Log(0) 看看结果如何。它是未定义的“NAN” 我在这里详细回答了这个问题 NAN in neural network

      【讨论】:

        猜你喜欢
        • 2022-11-30
        • 2014-01-22
        • 1970-01-01
        • 2019-05-07
        • 2015-01-06
        • 1970-01-01
        • 1970-01-01
        • 2020-02-15
        • 2019-12-31
        相关资源
        最近更新 更多