由于较低的精度可以节省大量的计算时间,所以我希望能够在错误情况下将经过部分训练的网络中的所有变量从float32切换(浮动)到float64。
例如:我将所有变量初始化为float32,通过网络运行数十万批,并观察到损耗达到1e-8阶的公差。此时,要继续收敛模型,我想对所有模型变量切换为双精度。
在python中有一种简单的方法吗?
编辑:而且,切换所有网络变量的dtype(权重,偏差,输入等)是否会导致我先前使用的优化器出现问题?例如,如果使用亚当(Adam)并以单精度计算力矩估计,切换到双精度会引起问题吗?