使用混合精度代码更改很少
scaler = GradScaler()
with autocast():
out = model(data)
loss = loss_func(out, target)
scaler.scale(loss).backward()
scaler.step(opt)
scaler.update()
只有PASCAL架构显卡
CIFAR1000最大批次
TITAN X PASCAL 12G
单精度batch=3100 混合精度batch=5000 批次大小提升61%倍
GTX1070 8G
单精度batch=2000 混合精度batch=2900 批次大小提升45%倍
CIFAR1000速率测试
batch=2500
TITAN X PASCAL 12G
单精度 15.47s/batch 混合精度 22.8秒/bitch 速率变慢了47%
GTX1070 8G
单精度 18.13s/batch 混合精度 29.6秒/bitch 速度变慢了63%
显存不够可以试试混合精度,PASCAL架构显卡混合精度更慢,有tensor core显卡应该可以加速。
混合精度训练
本文探讨了混合精度在深度学习训练中的应用。使用较少的代码改动即可实现,尤其适用于显存有限的情况。实验证明,在PASCAL架构显卡上,虽然能增加批次大小,但训练时间会有所延长。
731

被折叠的 条评论
为什么被折叠?



