Подходит для сети Keras: потери - это «нан», точность не меняется - PullRequest
0 голосов
/ 30 марта 2019

Я пытаюсь вписать в сеть keras, но в каждой эпохе потери равны 'nan', а точность не меняется ... Я пытался изменить эпоху, количество слоев, количество нейронов, скорость обучения, оптимизаторы, я проверил данные Nan в наборы данных, нормализовать данные различными способами, но проблема не была решена. Спасибо за вашу помощь.

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)
99804/99804 [==============================] - 5s 52us/step - loss: nan - acc: 0.4938
Epoch 1/100
99804/99804 [==============================] - 5s 49us/step - loss: nan - acc: 0.4938
Epoch 2/100
99804/99804 [==============================] - 5s 51us/step - loss: nan - acc: 0.4938
Epoch 3/100
99804/99804 [==============================] - 5s 52us/step - loss: nan - acc: 0.4938
Epoch 4/100
99804/99804 [==============================] - 5s 52us/step - loss: nan - acc: 0.4938
Epoch 5/100
99804/99804 [==============================] - 5s 51us/step - loss: nan - acc: 0.4938
...

Ответы [ 2 ]

0 голосов
/ 31 марта 2019

О, проблема была найдена! После нормализации один нанонейрон появился во входном векторе

0 голосов
/ 30 марта 2019

Сначала преобразуйте ваш вывод в категориальный, как описано в Документация Keras :

Примечание: при использовании потери categoryor_crossentropy ваши цели должны быть в категориальном формате.Чтобы преобразовать целочисленные цели в категориальные, вы можете использовать утилиту Keras to_categorical:

from keras.utils import to_categorical
categorical_labels = to_categorical(int_labels, num_classes=None)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...