pytorch: 常见bug与debug

本博文用来记录自己的 pytorch 踩坑过程,虽然 pytorch 命令式编程,声称容易 debug,可是 代码给出的错误提示可是令人相当头疼,所以在本文中记录一下在编写 pytorch 代码过程中碰到的 坑,和如何 填坑。

  • TypeError: ××× received an invalid combination of arguments 如果检查过了数据类型的正确性之后(float32, int) 。下一步要关心的就是 op 操作的两个 Variable/Tensor 是不是在同一个 设备上 ,如果一个在 cpu 上,一个在 gpu 上就有可能会报错
  • 注意 op 的参数要求,有些是 要求 Tensor 有些 是要求 Variable ,有些是 都可以。
  • 当需要 求梯度时,一个 op 的两个输入都必须是要 Variable:
# 这段代码,如果 requires_grad=False,  a 是 Tensor,则是没错的
# 但是 requires_grad=True, a 是 Tensor,则会报错
# 这时的报错信息是 
# save_for_backward can only save input or output tensors, but argument 0 doesn't satisfy this condition
# requires_grad=True,  a是 Variable, 则不会报错
import torch
from torch.autograd import Variable

v1 = Variable(torch.FloatTensor([1., 2., 3.]), requires_grad=True)
a = Variable(torch.FloatTensor([1., 0., 0.]).type(new_type=torch.ByteTensor))

res = torch.masked_select(v1, a)
res = 3 * res

res.backward(torch.FloatTensor([1.]))
print(v1.grad)
  • 卷积层 -> 全连接层,中间一定要 view 一下,否则会shape不匹配

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏深度学习与计算机视觉

手把手教你如何应用TF-Slim快速实现迁移学习

这是一篇以实践为主的入门文章,目的在于用尽量少的成本组织起来一套可以训练和测试自己的分类任务的代码,其中就会用到迁移学习,TF-Slim库的内容,所以我们分为下...

5938
来自专栏数据派THU

独家 | 10分钟带你上手TensorFlow实践(附代码)

原文标题:TensorFlow Tutorial: 10 minutes Practical TensorFlow lesson for quick learn...

3207
来自专栏大数据挖掘DT机器学习

用python实现支持向量机对婚介数据的用户配对预测

网上有人用libsvm2.89在Python2.6成功。(一定要libsvm2.89搭配python2.6,其他版本都不能成功,我就是浪费了大量时间在这里!) ...

3015
来自专栏机器学习算法全栈工程师

从0 到1 实现YOLO v3(part two)

本部分是 从0到1 实现YOLO v3 的第二部分 的第二部分,前两部分主要介绍了YOLO的工作原理,包含的模块的介绍以及如何用pytorch搭建完整的YOL...

1933
来自专栏杨熹的专栏

TensorFlow 入门

---- CS224d-Day 2: 在 Day 1 里,先了解了一下 NLP 和 DP 的主要概念,对它们有了一个大体的印象,用向量去表示研究对象,用神经网络...

4394
来自专栏null的专栏

利用Theano理解深度学习——Logistic Regression

一、Logistic Regression 1、LR模型 image.png 2、损失函数 image.png 3、随机梯度下降法 为了求解LR模型中的参数,在...

32210
来自专栏磐创AI技术团队的专栏

FastText的内部机制

683
来自专栏我的python

如何用pytorch打印出隐藏层梯度

我们在训练神经网络时, 有时会发现自己的网络学习不到东西,loss不下降或者下降很慢,这时除了检查修改学习率以外还有可能是碰见了梯度消失的问题。检...

3634
来自专栏https://www.cnblogs.com/L

【Caffe篇】--Caffe solver层从初始到应用

672
来自专栏深度学习思考者

一文搞懂Matlab画图那些事(上篇)

题记:临时需要Matlab画个曲线图,突然发现有些命令竟然忘掉了,于是各种查。这里博主整理合并关于画图那些命令,只为让你轻松搞定Matlab画图这些琐事,那么,...

2237

扫码关注云+社区