Обучение с Keras / TensorFlow по fp16 / с половинной точностью для карт RTX - PullRequest
0 голосов
/ 25 октября 2019

Я только что получил RTX 2070 Super, и я хотел бы попробовать половинную точность обучения с использованием Keras с TensorFlow back end.

До сих пор я нашел такие статьи, как эта , которыерекомендуем использовать следующие настройки:

import keras.backend as K

dtype='float16'
K.set_floatx(dtype)

# default is 1e-7 which is too small for float16.  Without adjusting the epsilon, we will get NaN predictions because of divide by zero problems
K.set_epsilon(1e-4) 

Сеть представляет собой простой четырехслойный CNN для классификации звука.

Мои входные данные - это созданный ранее массив NumPy 3D (функции MFCC аудио, извлеченные с помощью LibROSA),Эти данные были сгенерированы с использованием процессора, и я понимаю, что значения сохраняются как 32-разрядные числа с плавающей запятой.

Когда я пытаюсь обучить свою сеть с этими данными, я получаю следующую ошибку:

TypeError: Тензорные элементы в списке, переданные «входам» в операторе «Слияние», имеют типы [float16, float32], которые не все совпадают.

В другой статье, которую я прочитал, я должен также «Привестиназад к FP32 перед слоем SoftMax ", что делает вещи еще более спорными ...

Я был бы очень признателен за некоторую ориентацию.

Спасибо!

...