到目前为止,还剩下最后一个技术点,就是在 GPU 上训练模型。因为生成任务模型参数量大,训练样本多,所以训练难度很大,不用 GPU 训练是很难出效果的。而且,要保证每个 batch 可以加载一定量的样本,一块 GPU 可能还不够,所以需要用到多块 GPU 并行训练。

代码示例

1、设备判断和单GPU训练

注意:模型和数据要在同一设备上。

内容不可见,请联系管理员开通权限。

2、多GPU并行训练

在使用 nn.DataParallel 对模型进行并行化后,模型会被包装在 DataParallel 类的对象中。需要使用 model.module,才可以访问原始模型的属性和方法。

内容不可见,请联系管理员开通权限。

好的,正常情况下,到这里就可以开始训练模型了。但是,凭经验判断,用这种方法训练这个模型,在训练过程中肯定会出现负载不均衡的问题,就是第一块 GPU 负载特别高,其他的没怎么用上,所以下节课,我们还需要处理一下,这个多块GPU负载不均衡的问题。

本文链接:http://www.ichenhua.cn/edu/note/676

版权声明:本文为「陈华编程」原创课程讲义,请给与知识创作者起码的尊重,未经许可不得传播或转售!