热门标签 | HotTags
当前位置:  开发笔记 > 人工智能 > 正文

pytorch多GPU训练遇到的坑

在打算由单GPU转成多GPU时,使用:self.modelself.model.cuda(devicedevice_ids[0])self.model

在打算由单GPU转成多GPU时,使用:

self.model = self.model.cuda(device=device_ids[0]) self.model = torch.nn.DataParallel(self.model,device_ids=device_ids)

设置后,出现报错,报错显示读取不到模型的参数,原因是因为经过DataParallel包装过的模型如下:
在这里插入图片描述
和使用单GPU时不同的是多了一个.module,所以再进行任何需要调用model里面参数的操作时,都需要在model后面加上一个.module,即model.module,这样才能提取出model里面的参数以及函数等。如图所示:
在这里插入图片描述


推荐阅读
author-avatar
广东神秘地址
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有