Keras网络拟合:损失是“难”,准确性不会改变

时间:2019-03-30 12:59:33

标签: python tensorflow keras neural-network

我尝试拟合keras网络,但是在每个时期中损失都是'nan'并且准确性不会改变...我试图更改时期,层数,神经元计数,学习率,优化器,我检查了nan数据数据集,通过不同的方式对数据进行规范化,但问题并未解决。感谢您的帮助。

static
np.random.seed(1337)

# example of input vector: [-1.459746, 0.2694708, ... 0.90043]
# example of output vector: [1, 0] or [0, 1]

model = Sequential()
model.add(Dense(1000, activation='tanh', init='normal', input_dim=503))
model.add(Dense(2, init='normal', activation='softmax'))

opt = optimizers.sgd(lr=0.01)
model.compile(loss="categorical_crossentropy", optimizer=opt, metrics=['accuracy'])

print(model.summary())

model.fit(x_train, y_train, batch_size=1000, nb_epoch=100, verbose=1)

2 个答案:

答案 0 :(得分:0)

首先按照Keras documentation中的描述将输出转换为分类:

  

注意:使用categorical_crossentropy损失时,您的目标应采用分类格式。为了将整数目标转换为分类目标,可以使用Keras实用程序to_categorical:

from keras.utils import to_categorical
categorical_labels = to_categorical(int_labels, num_classes=None)

答案 1 :(得分:0)

哦,发现问题了!归一化后,输入向量中出现了一个神经元。