Я не думаю, что вы можете сделать это эффективно.Большинство операций, таких как tf.matmul
, требует, чтобы их операнды имели одинаковый тип.Таким образом, вы в конечном итоге преобразуете tf.float32
в tf.float64
всякий раз, когда вы хотите, чтобы вычисления происходили с такой точностью.
С вычислительной точки зрения, учтите, что для видеокарты характерно гораздо меньшеодаренный для операций FP64, чем для FP32.Например, графическая карта P5000, P6000 или GTX 1080 имеет только 1/32 ядра FP64, чем FP32.Titan V с коэффициентом 1/2 является одним из лучших, которые вы можете получить.
Наконец, особенно в области глубокого обучения, точность вычислений никогда не была проблемой.На самом деле, добавление noise к вычислениям (в основном посредством стохастического градиентного спуска) - это то, что большинство людей думают, что обучение делает работу, и на самом деле можно успешно обучать модели с плавающими точками с половинной точностью .