yolov5的3.0版本代码在训练的时候报错:ImportError: cannot import name ‘amp‘ from ‘torch.cuda‘ 以及yolov5的3.0环境安装
欢迎大家关注笔者,你的关注是我持续更博的最大动力
原创文章,转载告知,盗版必究
yolov5的3.0版本代码在训练的时候报错:ImportError: cannot import name ‘amp‘ from ‘torch.cuda‘ 以及yolov5的3.0环境安装
文章目录:
- 1 错误原因分析
- 2 错误解决方法一
- 3 错误解决方法二
- 4 最终错误解决方法
本人环境声明:
系统环境
:Ubuntu18.04.1
cuda版本
:10.2.89
cudnn版本
:7.6.5
torch
:1.6.0
torchvision
:0.7.0
1 错误原因分析
yolov5的3.0版本代码在训练的时候报错:ImportError: cannot import name 'amp' from 'torch.cuda'
(yolov5) shl@zfcv:~/project/yolov5_v3_0820$ ./4_clothes_shoes_hat_v1_train
Traceback (most recent call last):File "train.py", line 16, in <module>from torch.cuda import amp
ImportError: cannot import name 'amp' from 'torch.cuda' (/home/shl/anaconda3/envs/yolov5/lib/python3.7/site-packages/torch/cuda/__init__.py)
2 错误解决方法一
然后我就开始尝试解决这个问题,在网上看到issues的解决方法,这可能可cuda和pytorch的版本问题,具体解决方法如下:
1、查看你的cuda和pytorch的版本
nvcc --version 或 cat usr/local/cuda-[version]
2、如果你的cuda是10.0
,请在这里检查你的pytorch的对应版本
3、重新安装cuda10.0对应的pytorch
pip install torch==1.4+cu100 torchvision==0.5.0+cu100 -f https://download.pytorch.org/whl/torch_stable.html
我的pytorch安装的就是torch==1.4+cu100 torchvision==0.5.0+cu100
,但是我的cuda是10.2版本
,但是我并不像改变这个版本!
3 错误解决方法二
之前在yolov5的v2版本中,train.py的apex使用代码如下:
(yolov5) shl@zfcv:~/project/yolov5_v3_0820$ cat ~/shl/yolov5/train.py -n1 import argparse23 import torch.distributed as dist4 import torch.nn.functional as F5 import torch.optim as optim6 import torch.optim.lr_scheduler as lr_scheduler7 import yaml8 from torch.utils.tensorboard import SummaryWriter910 import test # import test.py to get mAP after each epoch11 from models.yolo import Model12 from utils.datasets import *13 from utils.utils import *1415 mixed_precision = True16 try: # Mixed precision training https://github.com/NVIDIA/apex17 from apex import amp18 except:19 print('Apex recommended for faster mixed precision training: https://github.com/NVIDIA/apex')20 mixed_precision = False # not installed
于是我把train.py
的from torch.cuda import amp
修改为:from apex import amp
1、首先安装amp
,如果没有安装会提示库包不存在
(yolov5) shl@zfcv:~/project/yolov5_v3_0820$ ./4_clothes_shoes_hat_v1_train
Traceback (most recent call last):File "train.py", line 18, in <module>from apex import amp
ModuleNotFoundError: No module named 'apex'
2、安装好之后又再执行训练,报错如下
报错:TypeError: Class advice impossible in Python3. Use the @implementer class decorator instead.
(yolov5) shl@zfcv:~/project/yolov5_v3_0820$ ./4_clothes_shoes_hat_v1_train
Traceback (most recent call last):File "train.py", line 18, in <module>from apex import ampFile "/home/shl/anaconda3/envs/yolov5/lib/python3.7/site-packages/apex/__init__.py", line 18, in <module>from apex.interfaces import (ApexImplementation,File "/home/shl/anaconda3/envs/yolov5/lib/python3.7/site-packages/apex/interfaces.py", line 10, in <module>class ApexImplementation(object):File "/home/shl/anaconda3/envs/yolov5/lib/python3.7/site-packages/apex/interfaces.py", line 14, in ApexImplementationimplements(IApex)File "/home/shl/anaconda3/envs/yolov5/lib/python3.7/site-packages/zope/interface/declarations.py", line 706, in implementsraise TypeError(_ADVICE_ERROR % 'implementer')
TypeError: Class advice impossible in Python3. Use the @implementer class decorator instead.
(yolov5) shl@zfcv:~/project/yolov5_v3_0820$
3、解决错误(参考):TypeError: Class advice impossible in Python3. Use the @implementer class decorator instead.
从apx的github主页的源码进行安装,如下:
git clone https://github.com.cnpmjs.org/NVIDIA/apex.git
cd apex
python setup.py install
然后错误完美解决,但是,紧接着又报错:AttributeError: module 'torch.nn' has no attribute 'Hardswish'
nn.Hardswish
这个激活函数应该是torch1.6
中刚有的,yolov5官方也说了,在yolov5的3.0版本要保证torch>=1.6
,我C C 艹
!
无奈,我只能重新建一个虚拟环境,然后乖乖安装torch1.6版本了!
#4 最终解决方法
1、新建虚拟环境
conda create -n yolov5-v3 python=3.7
2、激活虚拟环境
conda activate yolov5-v3
3、下载安装pytorch1.6
先去Pytorch官网查看pytorch1.6对应依赖的cuda版本
使用如下的下载命令:
pip install torch===1.6.0 torchvision===0.7.0 -f https://download.pytorch.org/whl/torch_stable.html
4、安装yolov5-v3的依赖库包
pip install -r requirements.txt
torch.nn.modules.module.ModuleAttributeError: ‘BatchNorm2d’ object has no attribute ‘_non_persistent_buffers_set’
查看官网issues,其中说的解决方法是更改torch的版本
https://download.pytorch.org/whl/torch_stable.html
然后我安装了torch1.5.1之后,开始训练时又报错:AttributeError: module 'torch.nn' has no attribute 'Hardswish'
这TMD是死循环吗,我决定放弃了!
4 最终错误解决方法
还好没放弃,终于等到你!!!
具体参考这篇博客
,我就不在这里在罗列了!
- 博客地址:https://shliang.blog.csdn.net/article/details/108219810
♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠
yolov5的3.0版本代码在训练的时候报错:ImportError: cannot import name ‘amp‘ from ‘torch.cuda‘ 以及yolov5的3.0环境安装相关推荐
- 解决ElementUI导 航栏中的vue- router在3 .0版本以 上重复点菜单报错问题
前言:在使用ElementUI中的导航时,默认情况下如果重复点击某选项,会报错,虽然对项目没啥影响,但红色报错真的很难受. 诺! 可以在router的配置文件中(router -> index. ...
- yolov5-5.0版本代码详解----augmentations.py的augment_hsv函数
yolov5-5.0版本代码详解----augmentations.py的augment_hsv函数 1.用途 图片的hsv色域增强模块 2.调用位置 在datasets.py的LoadImagesA ...
- import dlib,报错:ImportError: libcublas.so.10.0: cannot open shared object file: No such file or direc
import dlib,报错:ImportError: libcublas.so.10.0: cannot open shared object file: No such file or direc ...
- ceph mon 无法启动,报错:ceph-12.2.11/src/mon/AuthMonitor.cc: 157: FAILED assert(ret == 0)
版本 Ceph Luminous 12.2.11 报错信息 /home/jenkins-build/build/workspace/ceph-build/ARCH/arm64/AVAILABLE_AR ...
- eclipse2022.6版本新建maven项目时pom报错:Cannot find the declaration of element ‘project‘. pom.xml
新建maven项目时,pom.xml文件默认是这样的: < project xmlns= " http://maven.apache.org/POM/4.0.0 " xmln ...
- php 怎么开启错误报告,总结PHP开启关闭错误报告示例代码以及PHP脚本不报错的原因...
总结PHP开启关闭错误报告示例代码以及PHP脚本不报错的原因 分类:PHP_Python| 发布:佚名| 查看: | 发表时间:2014/8/28 那么如果PHP脚本不报语法错,会是什么原因呢: 1. ...
- 解决idea的html代码中使用es6语法报错的问题
解决idea的html代码中使用es6语法报错的问题 参考文章: (1)解决idea的html代码中使用es6语法报错的问题 (2)https://www.cnblogs.com/mayiaction ...
- pip下载包报错ERROR: Could not find a version that satisfies the requirement xxxx==1.0.2 (from versions
我在安装pymysql的时候报错 ERROR: Could not find a version that satisfies the requirement pymysql==1.0.2 (from ...
- kafka完美解决报错:Error while executing topic command:Replication factor:3 larger than available brokers:0
kafka完美解决报错:Error while executing topic command:Replication factor:3 larger than available brokers:0 ...
最新文章
- css3 卡片亮光_利用css3实现文字亮光特效的代码
- anaconda安装及环境变量配置
- python需要配置环境变量吗_教你手动设置python环境变量
- Android应用开发—FragmentManager如何管理fragments
- R语言学习 - 图形设置中英字体
- 微软企业库mysql分页存储_使用微软企业库,非分页sql语句得到分页数据方法
- POJ 2847 Widget Factory
- Android学习笔记---28_网络通信之通过HTTP协议实现文件上传,组拼http 的post方法,传输内容
- Python 爬取 201865 条《隐秘的角落》弹幕,发现看剧不如爬山?
- 没有任何匹配: mod_auth_mysql 阿里云_文案丨网易云让人感触良多的文案
- 学计算机笔画,学汉字学笔顺电脑版
- Error running ...: No jdk for module
- html5加号展开减号缩减,CSS3 linear-gradient线性渐变生成加号和减号的方法
- HCIP H12-223 题库
- Datawhale组队学习 Task05:字符串(2天)
- Robomaster视觉组成长之路
- 性别歧义代词(GAP) 2019年 NLP 研讨会性别偏见问题共同任务--阅读笔记
- Elasticsearch7.6.2 rpm集群部署及异常处理
- 计算机科学学现代,现代计算机科学的鼻祖,编程界的上帝:唐纳德
- [Android] 迅游加速器 5.1.26.1免费版 2020.6.16更新
热门文章
- HTML基础之CSS
- 解决 Out of range value adjusted for column 'ID' at row 1
- 架设httpd服务器
- iBatis学习网站推荐
- 避免表格table被撑开变形的CSS代码实例
- (原) ODP.NET 演示通过结果集的锁顶来更新 LOB 数据
- java是什么 需要学什么_Java是什么,Java需要学习哪些内容?如何自学Java?
- python怎样在已有excel文件指定行写入-Python中使用第三方库xlrd来写入Excel文件示例...
- python界面设计实例-【Python】Tkinter图形界面设计(GUI)
- 开课吧python学费-分享一个小白也能月赚2万的新技能