博客迁移之pytorch神坑记录

本文由本人于2018.02.03于https://blog.csdn.net/qrfaction/article/details/79249831发布

前天由于需要
翻起pytorch文档直接撸
然后今天记录一下这两天一路踩下来的神坑

pytorch3.0

  1. Tensor 和 Variable不能自动互转…

  2. Tensor各种类型之间不支持自动互转…

  3. Tensor的布尔索引不支持 list

  4. 循环单元的初始隐藏状态得自己设置,最好在传播时生成,因为他的batchsize大小会固定…

  5. 放在GPU上跑的时候记得把循环单元的初始隐藏状态 .cuda() ,因为GPU上的变量类型和CPU上的不能互转…

  6. 推断模式 一定要把变量设置成volatile = True,否则他会有一部份内存不会释放掉…
    我这里反正是由于验证集太大 有快百个G没释放掉 … 开了这个之后内存占用一直没超过12G…

  7. 使用dropout ,batchnorm 时记得使用 train() 和 eval()

  8. 模型 .cuda()转到GPU上后 参数也会改变 所以优化器一定要在这个之后用…

  9. pytorch3.0在开Data parallel后跑两个程序会导致进程死锁(kill不掉,以及尝试各类方法) 唯一的解决方案是重启