Есть ли способ обойти несколько «правильных» метрик для изучения керас в ТПУ? - PullRequest
0 голосов
/ 11 июня 2019

Я сделал маленькую модель с помощью Keras в Google colab Laboratory.И я вижу неправильные метрики, когда я запускаю обучение на TPU.

Когда я запускаю обучение на CPU / GPU, конечно, метрики m1 и m2 показывают правильное число.(см. код ниже)

Но после того, как я изменил тип среды выполнения на TPU, m1 и m2 не верны, и это выглядит как среднее из этих значений.

def m1(y_true, y_pred):
    return K.constant(10)

def m2(y_true, y_pred):
    return K.constant(20)

model = AnyModel()
model.compile(optimizer='adam', loss='categorical_crossentropy', metrics=[m1, m2])
model.fit(...)

[результат CPU / GPU]

[=====>....] - ETA: 0s - loss: xxxxx - m1: 10.0000 - m2: 20.0000 

[результат TPU]

[=====>....] - ETA: 0s - loss: xxxxx - m1: 14.9989 - m2: 15.0000 

Очевидно, что результат CPU / GPU правильный.Почему это случилось?Есть ли обходной путь?

  • Если я использую только одну метрику (например, [m1]), значение будет правильным.

1 Ответ

0 голосов
/ 15 июня 2019

Теперь это работает!

Несколько метрик могут быть правильно использованы с Tensorflow версии 1.14.0-rc1.Я предполагаю, что это была ошибка TF или Keras, но теперь она была устранена.

(Примечание: На ver.1.14.0-rc1, fit_generator не может быть использовано! Но это должно быть решено в ближайшее время.)

Если по какой-то причине вы используете тензор потока 1.13 или менее, учтите эту ошибку, и вы можете использовать только одну метрику.

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