Почему мой код keras не показывает значение точности? - PullRequest
2 голосов
/ 24 марта 2019

Когда я тренирую модель, я не могу получить свою точность

model.fit(train, train_label,
          batch_size=64,
          epochs=12,
          verbose=1,
          validation_data=(test, test_label))

когда я тренирую данные, это выглядит так:

Epoch 1/12
8000/8000 [==============================] - 166s 21ms/step - loss: 0.4743 - val_loss: 0.2727

Показывает количество потерь, но без точности.

Когда я оцениваю,

score = model.evaluate(test, test_label, verbose=0)
print('Test loss:', score[0])
print('Test accuracy:', score[1])

это говорит мне, что:

 IndexError: invalid index to scalar variable.

Я не знаю, почему оценка является скалярной переменной.

Как я могу получить свою точность?

1 Ответ

6 голосов
/ 24 марта 2019

Когда вы компилируете модель Keras, вы указываете метрики, которые вы хотите отслеживать в этой модели. Из документации :

model.compile(loss='mean_squared_error',
              optimizer='sgd',
              metrics=['mae', 'acc'])

Здесь мы указали, что мы хотим, чтобы модель выводила Среднее абсолютное отклонение (mae) и Точность (acc).

По умолчанию ваша модель отслеживает только потери. У вас есть только одна метрика, поэтому результат .evaluate представляет собой одно число (скалярное) и не поддерживает индексирование, следовательно, ошибка.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...