bert4keras icon indicating copy to clipboard operation
bert4keras copied to clipboard

混合精度训练

Open zhengwsh opened this issue 4 years ago • 3 comments

请问在bert4keras实现中,能否支持像pytorch的fp16混合精度训练呢,是否可能?

zhengwsh avatar Feb 29 '20 09:02 zhengwsh

曾经探索过,还未成功。后面我再尝试尝试。

bojone avatar Feb 29 '20 14:02 bojone

import tensorflow as tf opt = tf.keras.optimizers.Adam(LR) #add a line 混合精度训练 opt = tf.train.experimental.enable_mixed_precision_graph_rewrite( opt, loss_scale='dynamic')

model.compile( loss='sparse_categorical_crossentropy', optimizer=opt, # 用足够小的学习率 # optimizer=PiecewiseLinearLearningRate(Adam(5e-5), {10000: 1, 30000: 0.1}), metrics=['accuracy'], ) 以上代码供参考

zhys513 avatar Apr 04 '21 05:04 zhys513

曾经探索过,还未成功。后面我再尝试尝试。

将layers文件中继承Layer类的所有调用self.add_weight 方法的地方增加参数 dtype=self.dtype

在tf2.1-2.3版本测试可以开启混合精度训练,不过好像部分模型会出现loss为nan就是了

Atakey avatar Jul 12 '21 15:07 Atakey