Поскольку более низкая точность может обеспечить значительную экономию времени вычислений, я хотел бы иметь возможность переключать (в середине прогона) все переменные в моей частично обученной сети с float32 на float64 при условии ошибки.
Например: я инициализирую все переменные как float32, запускаю несколько сотен тысяч пакетов по сети и наблюдаю, как потеря достигает допуска порядка 1e-8. На этом этапе, чтобы продолжить сближение модели, я бы хотел переключиться на двойную точность для всех переменных модели.
Есть ли простой способ сделать это в Python?
РЕДАКТИРОВАТЬ: Кроме того, будет ли переключение dtype всех сетевых переменных (весов, смещений, входов и т. Д.) Вызвать проблемы с оптимизатором, который я использовал ранее? Например, если используется Адам и вычисляет оценки моментов с одинарной точностью, вызовет ли переключение на двойную точность?