Pytorch安装及报错问题汇总

pip install torch -i https://pypi.douban.com/simple

可直接根据环境条件,直接运行最下面的命令安装。

使用 torch.nn.Embedding报错:index out of range in self;

可能原因是输入 embedding 层的数据并不是经过词典映射的,而是原始数据,因此张量内部有超出embedding层合法范围的数,embedding 层需检查张量内部具体值的大小,并确保它们的值在有效范围内[0, num_embeddings - 1]。可重新检查一下文本转为数字的过程,排序编码是否有问题

torch的zero_grad()

调用backward()函数之前都要将梯度清零,如果梯度不清零,pytorch会将上次计算的梯度和本次计算的梯度累加。好处是硬件限制,不能使用更大的batch_size时,使用多次计算较小的batch_size的梯度平均值代替更方便,坏处是每次都要清零梯度。

optimizer.zero_grad()
output = net(input)
loss = loss_f(output, target)
loss.backward()

pytorch 的 backward() 函数,网络参数反馈时,梯度是被积累的而不是被替换掉;在每一个batch时不需要将两个batch的梯度混合起来累积,这时就需要每个batch设置一遍zero_grad()清零。

如果不是每一个batch 都清楚之前的梯度,如每两个batch清理一次,相当于提高了batch_size,如果硬件不行,但batch_size 需要设高的领域比较适合,比如目标检测模型的训练。

使用pytorch实现多项线性回归中,grad更新时,每次运算后将上一次梯度清空,报错:

原因是在系统将 w 的grad 值初始化为none,第一次求梯度计算是在none值上进行报错,自然会没有data属性,修改方法:添加一个判断语句,从第二次循环开始执行求导运算;

for i in range(100):
    y_pred = multi_linear(x_train)
    loss = getloss(y_pred, y_train)
    if i != 0:
        w.grad.data.zero_()
        b.grad.data.zero_()
    loss.backward()
    w.data = w.data - 0.001 * w.grad.data
    b.data = b.data - 0.001 * b.grad.data

模型预测结果输出与目标值shape不符

告警:‘UserWarning: Using a target size (torch.Size([16])) that is different to the input size (torch.Size([16, 1])). This will likely lead to incorrect results due to broadcasting. Please ensure they have the same size.’

目标 tensor 的尺寸和输入 tensor 的尺寸不一致,只是警告,程序还能正常运行。该问题是目标 tensor 的尺寸是 ‘torch.Size([16, 1])’,而输入 tensor 的尺寸是 ‘torch.Size([16])’。
解决方法:使用 reshape() 改变目标 tensor 的尺寸,或用squeeze(1)将第二维去掉。

参考:

Start Locally | PyTorch

pytorch embedding层报错index out of range in self - 灰信网(软件开发博客聚合)

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
您好!关于PyTorch安装报错处理,我可以帮助您解答。首先,您可以按照以下步骤安装PyTorch: 1. 确保已经安装了Python。PyTorch支持Python 3.6及以上版本。 2. 打开命令行终端,使用pip或conda命令安装PyTorch。如果您使用pip,可以运行以下命令: ``` pip install torch torchvision ``` 如果您使用conda,可以运行以下命令: ``` conda install pytorch torchvision -c pytorch ``` 在安装过程中,可能会遇到一些报错。以下是一些常见的报错及其处理方法: 1. 报错信息:`ERROR: Could not find a version that satisfies the requirement torch`。 处理方法:请确保您输入的命令正确,并且网络连接正常。如果网络连接不稳定,可以尝试使用其他源进行安装。 2. 报错信息:`ModuleNotFoundError: No module named 'torch'`。 处理方法:这通常表示PyTorch未成功安装。请检查安装命令是否正确,并尝试重新安装PyTorch。 3. 报错信息:`CUDA out of memory`。 处理方法:这表示您的显存不足以运行当前的模型或数据。您可以尝试减少输入数据的大小,或使用更小的模型。另外,您也可以考虑使用较大的显存或在云平台上运行模型。 4. 报错信息:`ImportError: DLL load failed: The specified module could not be found`。 处理方法:这可能是由于缺少一些依赖库导致的。您可以尝试更新您的操作系统和显卡驱动程序,并重新安装PyTorch。 如果您遇到其他报错,可以提供具体的报错信息,我将尽力帮助您解决问题
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值