【python debug】python常见编译问题解决方法_2

 

序言

  • 记录python使用过程中碰到的一些问题及其解决方法
  • 上一篇:python常见编译问题解决方法_1

1. PermissionError: [Errno 13] Permission denied: ‘/lost+found’

  • 修改前:
  • 修改后(解决):
  • 此外,可能文件夹已被打开,也可能是无权限打开,或者打开一个文件而不是文件夹

2. No module named ‘lark’

  • 报错:ModuleNotFoundError: No module named ‘lark’

  • 解决方法:

    python3 -m pip install lark-parser
    

3. RuntimeError: Tensors must have same number of dimensions: got 3 and 2

  • 报错:有A[2, 16]、B[2, 4]两个tensor变量, 使用torch.cat((A, B), 1)拼接却报错
  • 解决方法:注意到模型输出带梯度,如下截图。如果不需要保留梯度信息,可以在变量变换之前加.detach()或.data调用,分离梯度信息
  • tensor维度合并报错,类似但不是
  • tensor维度合并报错,类似但不是

4. RuntimeError: Can’t call numpy() on Tensor that requires grad. Use tensor.detach().numpy() instead

  • 同上,在tensor转换为list的过程中碰到

5. RuntimeError: element 0 of tensors does not require grad and does not have a grad_fn

  • 报错:需要梯度但是没有梯度信息
  • 报错原因1:这里的loss默认的requires_grad是False,因此在backward()处不会计算梯度,导致出错
  • 报错原因2:就是loss本身没梯度,所以调用loss.backward()后向传播时报错,没梯度的原因可能是loss_function的output没有梯度,注意检查

6. RuntimeError: Trying to backward through the graph a second time, but the saved intermediate results have already beed freed. Specify retain_grad=True when calling .backward() or autograd.grad() the first time.

  • 解决:需要更新的中间结果加.data分离梯度信息

7. RuntimeError: Input and hidden tensors are not at the same device, found input tensor at cuda:0 and hidden tensor at cpu

  • 报错:两个tensor不在同一设备上device

  • 解决:添加.to(Device解决),tensor变量需要保持在同一个设备上

  • 参考:数据、网络、损失函数放到GPU,init放到GPU或者model.to(Device),model初始化时.to(Device)

8. AttributeError: ‘torch.dtype’ object has no attribute ‘type’

  • 报错:使用np.mean(xx)去计算张量xx的均值

  • 解决:np.mean可以操作list和array,但是此处的loss.data类型是torch.tensor, 需要使用torch.mean进行运算,torch.mean得到的结果也是tensor

  • 补充:获取张量的值 tensor.item()

9. ImportError: cannot import name ‘TypeAlias’ from ‘typing_extensions’

  • 或报错:TypeError: Plain typing_extensions.Self is not valid as type argument
  • 原因:以上两个报错都是typing_extensions版本过旧,使用了3.7.4

  • 解决方法:直接升级typing_extensions版本

    conda install typing_extensions=4.10.0	# 或其他版本
    

10. Torch.cuda.is_available()显示GPU Driver过老

  • 报错:The NVIDIA driver on your system is too old, torch.cuda.is_available()=False
  • 分析:GPU Driver版本11.1,并不老,我之前是通过如下命令在conda环境安装torch:

    pip install torch==1.7.1+cu110 torchvision==0.8.2+cu110 torchaudio==0.7.2 -f https://download.pytorch.org/whl/torch_stable.html
    
  • 在网上查了这种情况需要重新装一下cuda配套的pytorch版本

  • 原因:不是GPU驱动版本老,而是pytorch版本和cuda版本不匹配

  • 解决方法:重新安装pytorch,如下

    • 在该网站 https://pytorch.org/get-started/previous-versions/ 搜索cuda 11.1

    • 按照该命令重装后torch.cuda.is_available()查询正常

      # CUDA 11.1
      pip install torch==1.10.1+cu111 torchvision==0.11.2+cu111 torchaudio==0.10.1 -f https://download.pytorch.org/whl/cu111/torch_stable.html
      

 


【参考文章】
[1]. Permission denied解决方案1
[2]. Permission denied解决方案2
[3]. 不保留梯度信息
[4]. 中间变量添加.data分离梯度信息
[5]. .data和.detach()的区别
[6]. pytorch和cuda版本不匹配

created by shuaixio, 2024.03.03

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/425721.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

048 异常

什么是异常 异常体系结构 异常的继承关系 Error Exception 异常处理机制 try:用{}将可能产生异常的代码包裹catch:与try搭配使用,捕获try包裹代码中抛出的异常并进行后续动作finally:跟在try后,在try和catch之后执行…

【HTML】HTML基础6.1(表格以及常见属性)

目录 表格介绍 表格标签 表格标签的常见属性 案例 知识点总结 表格介绍 在浏览器中,我们经常见到形如 这样的表格形式,一般来说,表格是为了让数据看起来更加清晰,增强数据的可读性 有的程序员也会用表格进行排版 表格标签 &…

LeetCode 刷题 [C++] 第121题.买卖股票的最佳时机

题目描述 给定一个数组 prices ,它的第 i 个元素 prices[i] 表示一支给定股票第 i 天的价格。 你只能选择 某一天 买入这只股票,并选择在 未来的某一个不同的日子 卖出该股票。设计一个算法来计算你所能获取的最大利润。 返回你可以从这笔交易中获取的…

SpringBoot+Maven多环境配置模式

我这里有两个配置文件 然后在最外层的父级POM文件里面把这个两个配置文件写上 <profiles><profile><id>druid</id><properties><spring.profiles.active>druid</spring.profiles.active></properties><activation><…

Linux多线程控制:深入理解与应用(万字详解!)

&#x1f3ac;慕斯主页&#xff1a;修仙—别有洞天 ♈️今日夜电波&#xff1a;どうして (feat. 野田愛実) 0:44━━━━━━️&#x1f49f;──────── 3:01 &#x1f504; ◀️ ⏸ ▶️ …

Facebook的数字治理挑战:社交平台的未来模式

在当今数字化时代&#xff0c;社交媒体平台已经成为人们日常生活的重要组成部分&#xff0c;而Facebook作为其中最具代表性的平台之一&#xff0c;其承载的社交功能和影响力已经不可小觑。然而&#xff0c;随着社交媒体的普及和发展&#xff0c;一系列数字治理挑战也随之而来&a…

LeetCode每日一题之 移动0

前言&#xff1a; 我的每日一题专栏正式开始更新&#xff0c;我会分享关于我在LeetCode上刷题时的经验&#xff0c;将经典题型拿出来详细讲解&#xff0c;来提升自己及大家的算法能力&#xff0c;希望这篇博客对大家有帮助。 题目介绍&#xff1a; 题目链接&#xff1a;. - …

23端口登录的Telnet命令+传输协议FTP命令

一、23端口登录的Telnet命令 Telnet是传输控制协议/互联网协议&#xff08;TCP/IP&#xff09;网络&#xff08;如Internet&#xff09;的登录和仿真程序&#xff0c;主要用于Internet会话。基本功能是允许用户登录进入远程主机程序。 常用的Telnet命令 Telnet命令的格式为&…

图文详解:在虚拟机上安装Win7,超详细!!!

一.准备 1.虚拟机&#xff1a; https://pan.xunlei.com/s/VNpZ_9c2AdrnUW1YWNdhBLW-A1?pwdyp6b# 2.win7的iOS&#xff1a; https://pan.xunlei.com/s/VNpZd61K6a7cDG3YkI_3oVbUA1?pwdyrfp# 二.安装配置 三.配置Win7 1.记得输入原先下载的镜像文件 2.那我们选择自定义 3…

亚信安慧AntDB:打破数据孤岛,实现实时处理

AntDB数据库以其独特的创新能力在分布式数据库领域引领潮流。其中&#xff0c;融合统一与实时处理是其两大核心创新能力&#xff0c;为其赢得广泛关注与赞誉。融合统一意味着AntDB能够将多种不同类型的数据库融合为一体&#xff0c;实现数据的统一管理与处理&#xff0c;极大地…

3.3作业

1、图片拷贝 #include <stdio.h> #include <sys/types.h> #include <unistd.h> #include <stdlib.h> #include <pthread.h> #include <sys/stat.h> #include <fcntl.h>typedef struct xccpy {int num;off_t size;int fd_r;int fd_w…

CSS锥形渐变:conic-gradient()

画一个扇形图&#xff0c;使用常规方法可能很难画&#xff0c;但是用锥形渐变的话非常好画 <style>.pattern{width: 100px; height: 100px;border-radius: 50%;background: conic-gradient(yellow 30deg , black 30deg , black 90deg , yellow 90deg ,yellow 150d…

MongoDB 使用教程

座右铭&#xff1a;怎么简单怎么来&#xff0c;以实现功能为主。 欢迎大家关注公众号与我交流 使用方法&#xff1a; 1、MongoDB 帮助 ------- db.help() 2、Mongodb 统计信息 ------ db.stats() 刚安装上的MongoDB &#xff0c;默认默认的数据库为test&#xff0c;这个时候…

两天学会微服务网关Gateway-Gateway工作原理

锋哥原创的微服务网关Gateway视频教程&#xff1a; Gateway微服务网关视频教程&#xff08;无废话版&#xff09;_哔哩哔哩_bilibiliGateway微服务网关视频教程&#xff08;无废话版&#xff09;共计17条视频&#xff0c;包括&#xff1a;1_Gateway简介、2_Gateway工作原理、3…

uniapp 微信小程序使用高德地图Vue3不兼容Vue2问题

1. uniapp 微信小程序使用高德地图Vue3不兼容Vue2问题 1.1. 问题 uniapp Vue3项目引用高德地图报错 import amapPlugin from ‘…/…/…/js_sdk/js_amap/amap-wx.130’; "default" is not exported by "../../../MyProject/Base/Szy/js_sdk/js_amap/amap-wx.1…

3.2日-线性模型,基础优化方法,线性回归从零开始实现

3.2日-线性模型&#xff0c;基础优化方法&#xff0c;线性回归从零开始实现 1线性模型衡量预估质量训练数据总结2基础优化方法3 线性回归从零开始实现 1线性模型 衡量预估质量 训练数据 总结 2基础优化方法 梯度下降是一种优化算法&#xff0c;常用于机器学习和深度学习中&…

#WEB前端(浮动与定位)

1.实验&#xff1a; 2.IDE&#xff1a;VSCODE 3.记录&#xff1a; float、position 没有应用浮动前 应用左浮动和右浮动后 应用定位 4.代码&#xff1a; <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><me…

基于ZYNQ的PCIE高速数据采集卡的设计(一)

作为信息处理的第一步&#xff0c;数据采集的作用越来越重要。目前&#xff0c;数据采集已经在航 空、民用、军事、医疗等领域得到广泛应用。随着相关技术的不断发展&#xff0c;信号频率越 来高&#xff0c;带宽越来越大&#xff0c;使得数据采集技术逐渐向高速大数据的方向…

位运算---求n的二进制表示中第k位是1还是0 (lowbit)

操作&#xff1a; 先把第k位移到最后一位&#xff08;右边第一位&#xff09; 看个位是1还是0 lowbit(x)&#xff1a;返回x的最右边的1。 原理&#xff1a; 其中 &#xff0c;意思是 是 的补码。 就可以求出最右边的一位1。 应用&#xff1a; 当中 的个数。 int re…

【创作回顾】17个月峥嵘创作史

#里程碑专区#、#创作者纪念日# 还记得 2022 年 10 月 05 日&#xff0c;我在CSDN撰写了第 1 篇博客——《关于测试工程师瓶颈和突围的一个思考》&#xff0c;也是我在全网发布的第一篇技术文章。 回想当时&#xff0c;这一篇的诞生过程并不轻松&#xff0c;不像是一篇网络文章…