pytorch踩坑记录

ISSUE 01

2018.12.18
新的服务器上装了pytorch 0.4
遇到了一些奇怪的问题。
在尝试四卡并行的时候报了
one of the variables needed for gradient computation has been modified by an inplace operation

搜了一下说是不让用inplace,然而检查了代码并没有用到
之后自己另外开了一个做尝试
发现以前的 预先定义一个dtype(比如torch.cuda.FloatTensor
然后在用.type(dtype)统一数据类型的方式不好用了
在单卡运行时并没有出现问题,但是在多卡的时候如果采用了nn.DataParallel(net,[0, 1, 2, 3]).type(dtype)这种方式就会出现上面的错误
只有.cuda()才可以成功把网络放在GPU上。
导致我现在的代码又丑又胖。还是菜了点

另外发现在使用os.environ["CUDA_VISIBLE_DEVICES"] = IDs之后,对torch而言卡的序号就发生了变化,例如如果想用2,3号卡跑的话得这么写:os.environ["CUDA_VISIBLE_DEVICES"] = "2, 3"nn.DataParallel(net,[0, 1])当然这是随便想想就能想明白的事情 而且直接写nn.DataParallel(net,[2, 3])`也没有什么问题

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 官方所有教程的地址:pytorch.org/tutorials 以下是基于实例来入门pytorch Learnin...
    MiracleJQ阅读 1,846评论 0 4
  • Contents Should I manually set model mode to train() or...
    肆不肆傻阅读 1,868评论 0 0
  • 像认真记录生活一样记录Bug. 未经允许,不得转载,谢谢~~ 1. 从autograd.Variable中取Te...
    与阳光共进早餐阅读 60,705评论 17 34
  • 谢你 昨日陪我一起走过 谢你 今时与我一同经历 谢你 明天跟我一并面对 当下一刻 何止一声谢你
    不负本心阅读 153评论 0 0
  • 我不后悔,其实也没有理由遗憾。至今我都不知道开始和结束的真正起因,或许只是我不愿意相信它们。你说终有一天自己会明白...
    流光不再阅读 113评论 0 0