分享两个神奇的 在pytorch中随意使用.cuda() 可能出现的BUG

RuntimeError: Only Tensors created explicitly by the user (graph leaves) support the deepcopy protocol at the moment

这是在如下场景中可能出现的问题
在这里插入图片描述
表面看上去没有任何问题,但却会出现标题中的BUG。

Expected device cuda:0 and dtype Float but got device cpu and dtype Float

这是在梯度反向传播时的报错,注意此时看上去所有的计算过程中涉及的参数都是cuda类型。

那么究竟是什么导致了这两个错误的出现呢。看上去有点难以理解,仅仅是在定义模型的的时候使用了.cuda()所致。
分享两个神奇的 在pytorch中随意使用.cuda() 可能出现的BUG_第1张图片
大致的猜测是定义时.cuda()的参数会跑到异次元空间去(开玩笑的,但很可能确实会让这部分参数的位置变得很奇怪)。

如果哪位明确缘由,还请不吝赐教!

最后再转载一篇救命帖
解决PyCharm调试查看变量时一直显示collecting data并报错Timeout waiting for response且看不到任何内容

你可能感兴趣的:(分享两个神奇的 在pytorch中随意使用.cuda() 可能出现的BUG)