PyTorchLightning返回CUDA错误:打印以某种方式修复了此问题。为什么?

PyTorchLightning返回CUDA错误:打印以某种方式修复了此问题。为什么?,pytorch,pytorch-lightning,Pytorch,Pytorch Lightning,我正在使用PyTorch Lightning编写一个简单的培训师,但当我尝试运行培训师时,出于某种原因,10次中有9次它返回“CUDA错误:设备端断言”。只需在它似乎能够正常工作之前打印一条换行即可。有什么想法吗 我的代码: 类元素(nn.ModuleList): """ 一个简单的网络容器。 参数是模块的列表。 输入是最后一个维度长度相同的三维张量 如清单所示。 输出是将模块应用于元素输入的结果。 可选的merge参数允许将输出减少到 单张量。 """ 定义初始化(self,merge=Non

我正在使用PyTorch Lightning编写一个简单的培训师,但当我尝试运行培训师时,出于某种原因,10次中有9次它返回“CUDA错误:设备端断言”。只需在它似乎能够正常工作之前打印一条换行即可。有什么想法吗

我的代码:

类元素(nn.ModuleList):
"""
一个简单的网络容器。
参数是模块的列表。
输入是最后一个维度长度相同的三维张量
如清单所示。
输出是将模块应用于元素输入的结果。
可选的merge参数允许将输出减少到
单张量。
"""
定义初始化(self,merge=None,*args):
在[None',first',concat',sum',mlp']中断言合并
self.merge=merge
super(Elementwise,self)。\uuuu init\uuuu(*args)
def前进档(自身,输入):
输入\=[输入分割中专长的专长挤压(1)(1,尺寸=1)]
对于枚举中的i,j(输入):
inp=火炬张量(j).to(装置).long()
输入_i]=inp
#这行不通
输出=[f(x)表示枚举中的i,(f,x)(zip(self,inputs)))]
如果self.merge=='first':
返回输出[0]
elif self.merge==“concat”或self.merge==“mlp”:
返回火炬。cat(输出,1)
elif self.merge=='sum':
返回和(输出)
其他:
返回输出
但不知怎的,这是神奇的:

类元素(nn.ModuleList):
"""
一个简单的网络容器。
参数是模块的列表。
输入是最后一个维度长度相同的三维张量
如清单所示。
输出是将模块应用于元素输入的结果。
可选的merge参数允许将输出减少到
单张量。
"""
定义初始化(self,merge=None,*args):
在[None',first',concat',sum',mlp']中断言合并
self.merge=merge
super(Elementwise,self)。\uuuu init\uuuu(*args)
def前进档(自身,输入):
输入\=[输入分割中专长的专长挤压(1)(1,尺寸=1)]
对于枚举中的i,j(输入):
inp=火炬张量(j).to(装置).long()
输入_i]=inp
打印(“”)
输出=[f(x)表示枚举中的i,(f,x)(zip(self,inputs)))]
如果self.merge=='first':
返回输出[0]
elif self.merge==“concat”或self.merge==“mlp”:
返回火炬。cat(输出,1)
elif self.merge=='sum':
返回和(输出)
其他:
返回输出
您知道如何通过简单地打印到输出来修复此错误吗

编辑:此错误仅在使用Pytork Lightning进行抽象训练时出现,使用普通Pytork可以使其正常工作