Я только что получил 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 ", что делает вещи еще более спорными ...
Я был бы очень признателен за некоторую ориентацию.
Спасибо!