pytorch系列(一)常见错误

pytorch使用(一)常见错误

本人python小白一枚,遇到无数bug,此文内错误均是确实遇见且改正的,有写错的地方还望大神指正。
(持续更新。。。)


1、RuntimeError: scatter_(): Expected dtype int64 for index.

RuntimeError: scatter_(): Expected dtype int64 for index.

scatter要求数据是int64类型,而我在定义tensor时写的是torch.Tensor(x),应该写成torch.LongTensor(x),指定为int64类型。其他数据类型的定义方法可参考:
https://pytorch.org/docs/stable/tensors.html

2、IndexError: Dimension out of range (expected to be in range of [-2, 1], but got 2)

IndexError: Dimension out of range (expected to be in range of [-2, 1], but got 2)

维度不匹配问题。我是在torch.cat(out, dim=2)时报错,改为dim=1(按列拼接)则正确。
注:
torch.cat() 函数是拼接tensor,通过dim指定拼接的维度,dim=0表示按行拼接,dim=1表示按列拼接

3、ValueError: too many values to unpack (expected 3)

ValueError: too many values to unpack (expected 3)

返回值的数量不匹配,比如调用的函数return 3个变量,但是只有两个变量接受返回值。
举例:

def example():
    a=0
    b=a
    c=b
return a, b, c

A, B = example()

改为:

A, B, _, = example()

4、用pip下载包时可能会出现timeout问题,可以更换资源链接为清华的镜像:

举例:

pip install scrapy -i https://pypi.tuna.tsinghua.edu.cn/simple/ tensorboard

注:tensorboard只是举例,使用时换成你需要安装的包即可。

5、 savetxt 时报错

ValueError: Expected 1D or 2D array, got 3D array instead

原因是数据维度不对, torch.Size([116, 1, 178]) 应该变成[116, 178]。reshape改变维度就可以。

你可能感兴趣的:(pytorch,神经网络,机器学习)