[PyTorch]论文pytorch复现中遇到的BUG
1. zip argument #1 must support iteration
在多gpu训练的时候,自动把你的batch_size分成n_gpu份,每个gpu跑一些数据, 最后再合起来。我之所以出现这个bug是因为返回的时候 返回了一个常量。。
2. torch.nn.DataParallel
在使用torch.nn.DataParallel时候,要先把模型放在gpu上,再进行parallel。
3. model.state_dict()
一般在现有的网络加载预训练模型通常是找到预训练模型在现有的model里面的参数,然后model进行更新,遇到一个bug, 发现加载预训练模型的时候, 效果很差,跟参数没有更新一样,找了一大顿bug,最后才发现,之前是单gpu进行的预训练,现在的模型使用的是多gpu, 打印现在模型的参数你会发现他所有的参数前面都加了一个module. 所以向以前一样更新,没有一个参数会被更新,因此写了一个万能模型参数加载函数。
pretrained_dict = checkpoint['state_dict']
model_dict = self.model.state_dict()
if checkpoint['config']['n_gpu'] > 1 and self.config['n_gpu'] == 1:
new_dict = OrderedDict()
for k, v in pretrained_dict.items():
name = k[7:]
new_dict[name] = v
pretrained_dict = new_dict
elif checkpoint['config']['n_gpu'] == 1 and self.config['n_gpu'] > 1:
new_dict = OrderedDict()
for k, v in pretrained_dict.items():
name = "module."+k
new_dict[name] = v
pretrained_dict = new_dict
print("The pretrained model's para is following")
for k, v in pretrained_dict.items():
print(k)
pretrained_dict = {k: v for k, v in pretrained_dict.items() if k in model_dict}
model_dict.update(pretrained_dict)
self.model.load_state_dict(model_dict)
[PyTorch]论文pytorch复现中遇到的BUG的更多相关文章
- PyTorch在NLP任务中使用预训练词向量
在使用pytorch或tensorflow等神经网络框架进行nlp任务的处理时,可以通过对应的Embedding层做词向量的处理,更多的时候,使用预训练好的词向量会带来更优的性能.下面分别介绍使用ge ...
- 关于AFNetworking中header的bug问题
关于AFNetworking中header的bug问题 [摘要:AFNetworking那个正在ios开辟中便未几道了,网上一搜一大推,然则详细用法我便没有道了,偶然间我会整顿一下详细的一些用法.本日 ...
- !! 2.对十份论文和报告中的关于OpenCV和Android NDK开发的总结
http://hujiaweibujidao.github.io/blog/2013/11/18/android-ndk-and-opencv-development-3/ Android Ndk a ...
- 关于RadAsm中GetEnvironmentStrings的BUG。
今天在asm中不通过msvcrt.inc调用c库. 所以.第一时间就在vc的lib中拷贝了libc.lib问价.加入工程后. 声明.调用如下: 然后.链接报错. libc.lib(crt0.obj) ...
- IE6中的常见BUG与相应的解决办法
开发前端的同学一定都知道,IE6是兼容BUG最多的浏览器,它不支持PNG alpha通道暂且不论.其文档的解析理解规范也引起了诸多恼人的BUG,有时甚至让人感到绝望.本文主要讲解一些比较容易遇到的IE ...
- CSS中常见的BUG调试
1.布局--layout 布局是windows提出的概念,用于控制元素的尺寸和定位. 拥有布局的元素负责自身及其子元素的尺寸及定位,而没有布局的元素仅仅能依靠近期的祖先元素进行控制. 通常在IE6中出 ...
- onbeforeunload与a标签在IE中的冲突bug(转载)
onbeforeunload与a标签在IE中的冲突bug onbeforeunload 是window的一个事件,目前Firefox,IE都支持,主要用来提示用户是否真的要离开该页面,通常在一些比 ...
- IE6中CSS常见BUG全集及解决方案——摘自网友
IE6中CSS常见BUG全集及解决方案 IE6双倍边距bug 当页面内有多个连续浮动时,如本页的图标列表是采用左浮动,此时设置li的左侧margin值时,在最左侧呈现双倍情况.如外边距设置为10px, ...
- Kali Linux 2017中Scapy运行bug解决
Kali Linux 2017中Scapy运行bug解决 Scapy是一款强大的网络数据包构建工具.在Kali Linux 2017中,当在scapy的命令行中,运行res.graph()生成图形 ...
随机推荐
- SenchaTouch 的一些问题记录
1 : textfield 的 focus事件在手机上会被触发很多次,原因不明,在pc上测试无问题
- click() bind() live() delegate()区别
click(),bind(),live()都是执行事件时使用的方法 1.click()单击事件方法: $("a").click(function() { alert("h ...
- ExtJS学习
ExtJS是一门比较纠结的框架,自己不太熟,因为现在在做一些老项目,所以没办法要学点.记录下.其实Ext也不是很难,主要是多查查API,了解其基本的用法,然后慢慢去学习,学成之后做管理系统还是很有优势 ...
- Maven搭建Nexus私有仓库
下载压缩包nexus-2.13.0-01-bundle.tar.gz 解压后有两个目录 进入程序目录启动 ./nexus start 启动告警(确认用root启动把以下加入到环境变量) export ...
- HRBUST - 1153 意外 HRBUST - 1153 (数论)
意外 Time Limit: 1000 MS Memory Limit: 65536 K Total Submit: 326(87 users) Total Accepted: 97(63 users ...
- 过千万、亿条数据的mysql表更新 mysql 线程状态
分段更新 UPDATE question SET `status`=1 WHERE status!=1 LIMIT 3000;UPDATE answer SET `status`=1 WHERE st ...
- scrapy爬虫系列之一--scrapy的基本用法
功能点:scrapy基本使用 爬取网站:传智播客老师 完整代码:https://files.cnblogs.com/files/bookwed/first.zip 主要代码: ff.py # -*- ...
- EOS主网节点部署
EOS主网节点部署 #环境 ubuntu 16.4 EOS编译安装 EOS主网节点部署 eos区块查询.进程监控shell #EOS编译安装 #环境 ubuntu 16.4 # EOS安装部 # 以下 ...
- sshd:root@notty解决方法
sshd:root@notty解决方法 [复制链接]--http://bbs.chinaunix.net/forum.php?mod=viewthread&tid=2050551 cat /e ...
- java-mybaits-00101-基础安装配制
一.数据库安装 http://jingyan.baidu.com/article/363872ec2e27076e4ba16fc3.html 二.eclipse连接mysql http://jingy ...