本文由本人于2018.02.03于https://blog.csdn.net/qrfaction/article/details/79249831发布
前天由于需要
翻起pytorch文档直接撸
然后今天记录一下这两天一路踩下来的神坑
pytorch3.0
Tensor 和 Variable不能自动互转…
Tensor各种类型之间不支持自动互转…
Tensor的布尔索引不支持 list
循环单元的初始隐藏状态得自己设置,最好在传播时生成,因为他的batchsize大小会固定…
放在GPU上跑的时候记得把循环单元的初始隐藏状态 .cuda() ,因为GPU上的变量类型和CPU上的不能互转…
推断模式 一定要把变量设置成volatile = True,否则他会有一部份内存不会释放掉…
我这里反正是由于验证集太大 有快百个G没释放掉 … 开了这个之后内存占用一直没超过12G…使用dropout ,batchnorm 时记得使用 train() 和 eval()
模型 .cuda()转到GPU上后 参数也会改变 所以优化器一定要在这个之后用…
- pytorch3.0在开Data parallel后跑两个程序会导致进程死锁(kill不掉,以及尝试各类方法) 唯一的解决方案是重启