如何让Pytorch中自定义子Module的.tensor().cuda()操作成功执行?

2026-05-22 00:490阅读0评论SEO资源
  • 内容介绍
  • 文章标签
  • 相关推荐

本文共计828个文字,预计阅读时间需要4分钟。

如何让Pytorch中自定义子Module的.tensor().cuda()操作成功执行?

最近从TensorFlow转入PyTorch,在自定义nn.Module时遇到了问题。将模型+model=Model().cuda()后,子Module的parameter都没有被放入cuda,导致输入是torch.cuda.FloatTensor,但CNN等模型的某些层需要不同的数据类型。

最近在刚从tensorflow转入pytorch,对于自定义的nn.Module 碰到了个问题,即使把模组 modle=Model().cuda(),里面的子Module的parameter都没有被放入cuda,导致输入是torch.cuda.FloatTensor,但是比如CNN的weight却还是torch.FloatTensor

(当然最粗暴的方法就是直接在子模组里面都用了 .cuda()

但是问题并不在那,可能是调用子模组的时候,存在某些错误,导致父模组没有把子模组的parameter注册到pytorch中。

而我遇到的错误就是,使用list来存放子模组的对象,导致list中的parameter没有注册。

阅读全文

本文共计828个文字,预计阅读时间需要4分钟。

如何让Pytorch中自定义子Module的.tensor().cuda()操作成功执行?

最近从TensorFlow转入PyTorch,在自定义nn.Module时遇到了问题。将模型+model=Model().cuda()后,子Module的parameter都没有被放入cuda,导致输入是torch.cuda.FloatTensor,但CNN等模型的某些层需要不同的数据类型。

最近在刚从tensorflow转入pytorch,对于自定义的nn.Module 碰到了个问题,即使把模组 modle=Model().cuda(),里面的子Module的parameter都没有被放入cuda,导致输入是torch.cuda.FloatTensor,但是比如CNN的weight却还是torch.FloatTensor

(当然最粗暴的方法就是直接在子模组里面都用了 .cuda()

但是问题并不在那,可能是调用子模组的时候,存在某些错误,导致父模组没有把子模组的parameter注册到pytorch中。

而我遇到的错误就是,使用list来存放子模组的对象,导致list中的parameter没有注册。

阅读全文