Yolov5安装运行过程中出现的问题合集
- 安装问题
- pip 安装 requirements.txt
- cmd下如何退出python?
- 升级numpy
- protobuf版本过高
- AttributeError: Can’t get attribute ‘SPPF’ on <module ‘models.common’ from '地址
- 找不到图片
- NameError: name 'warnings' is not defined
- AttributeError: 'Upsample' object has no attribute 'recompute_scale_factor'
- yolov5s.pt文件的版本问题,代码中默认下载最新版本
- 参考链接
安装问题
报错:gnutls_handshake() failed: The TLS connection was non-properly terminated.
1、在git内重置proxy
git config --global --unset http.proxy
git config --global --unset https.proxy
2、在cmd内执行ipconfig/flushdns 清理DNS缓存
ipconfig/flushdns
参考链接
pip 安装 requirements.txt
pip install -r requirements.txt 的作用是从一个文本文件 requirements.txt 中安装所需的 Python 包。一般情况下,项目提供者会在 requirements.txt 文件中列出所有项目所依赖的 Python 包及其版本号,使用这个命令可以方便地安装这些依赖并满足项目运行的需要。
具体地,pip install 是 Python 模块管理器 pip 提供的安装命令,-r requirements.txt 表示从 requirements.txt 文件中读取依赖信息进行安装。这个命令会自动安装依赖的 Python 包,如果依赖的包已经安装了,或者是已经安装了版本符合要求的包,则不会进行重复安装
pip 安装 requirements.txt
cmd下如何退出python?
1.使用Ctrl+Z快捷键
在cmd命令行窗口中运行Python程序时,可以使用Ctrl+Z快捷键来退出Python。具体步骤如下:
(1)在cmd命令行窗口中输入python命令,进入Python交互式环境。
(2)在Python交互式环境中输入任意Python语句,例如print(“Hello, World!”)。
(3)按下Ctrl+Z快捷键,即可退出Python交互式环境。
这种方法简单快捷,适用于需要临时测试Python代码的情况。但是,当Python程序中存在死循环等无法终止的情况时,这种方法可能会失效。
2.使用quit()函数
Python中提供了quit()函数,可以用来退出Python交互式环境。具体步骤如下:
(1)在cmd命令行窗口中输入python命令,进入Python交互式环境。
(2)在Python交互式环境中输入quit()函数,即可退出Python交互式环境。
这种方法适用于需要频繁进入和退出Python交互式环境的情况。但是,当Python程序中存在死循环等无法终止的情况时,这种方法可能会失效。
3.使用sys.exit()函数
Python中的sys模块提供了exit()函数,可以用来退出Python程序。具体步骤如下:
(1)在cmd命令行窗口中输入python命令,进入Python交互式环境。
(2)在Python交互式环境中输入import sys语句,导入sys模块。
(3)在Python交互式环境中输入sys.exit()函数,即可退出Python程序。
这种方法适用于需要在Python程序中主动退出程序的情况。但是,当Python程序中存在死循环等无法终止的情况时,这种方法可能会失效。
4.使用Ctrl+C快捷键
在cmd命令行窗口中运行Python程序时,可以使用Ctrl+C快捷键来强制退出Python程序。具体步骤如下:
(1)在cmd命令行窗口中输入python命令,进入Python交互式环境或运行Python程序。
(2)按下Ctrl+C快捷键,即可强制退出Python程序。
这种方法适用于需要强制退出Python程序的情况。但是,强制退出可能会导致Python程序未能正常执行完毕,从而造成数据丢失等问题,应该尽量避免使用。
总结:
以上就是cmd下如何退出Python的几种方法。不同的方法适用于不同的情况,应根据具体情况选择合适的方法。在编写Python程序时,应尽量避免出现死循环等无法终止的情况,从而保证程序能够正常退出。
升级numpy
嗯,如何升级numpy的版本,这是个很火的问题
解决方案如下
在命令下输入pip install -U numpy 就可以升级numpy包了
pip install --upgrade numpy 这样也可以
如果您已经
拥有旧版本的NumPy,请使用以下命令:
1
pip install numpy --upgrade
如果仍然无法正常运行,请尝试:
1
pip install numpy --upgrade --ignore-installed
protobuf版本过高
Namespace(weights=‘yolov5s.pt’, source=‘data/images’, img_size=640, conf_thres=0.25, iou_thres=0.45, device=‘’, view_img=False, save_txt=False, save_conf=False, nosave=False, classes=None, agnostic_nms=False, augment=False, update=False, project=‘runs/detect’, name=‘exp’, exist_ok=False)
requirements: protobuf<3.20,>=3.9.2 not found and is required by YOLOv5, attempting auto-update…
If you cannot immediately regenerate your protos, some other possible workarounds are:
Downgrade the protobuf package to 3.20.x or lower.
Set PROTOCOL_BUFFERS_PYTHON_IMPLEMENTATION=python
这是由于安装tensorflow的时候,安装依赖包protobuf的版本过高造成的。
卸掉后再重新装一个指定版本的就行了。
pip uninstall protobuf
pip install protobuf==3.19.0
原文链接:https://blog.csdn.net/weixin_47464132/article/details/127671596
AttributeError: Can’t get attribute ‘SPPF’ on <module ‘models.common’ from '地址
产生了这个报错,我从其他博客里找到了解决办法,是在 common.py 文件中添加SPPF类
class SPPF(nn.Module):# Spatial Pyramid Pooling - Fast (SPPF) layer for YOLOv5 by Glenn Jocherdef __init__(self, c1, c2, k=5): # equivalent to SPP(k=(5, 9, 13))super().__init__()c_ = c1 // 2 # hidden channelsself.cv1 = Conv(c1, c_, 1, 1)self.cv2 = Conv(c_ * 4, c2, 1, 1)self.m = nn.MaxPool2d(kernel_size=k, stride=1, padding=k // 2)def forward(self, x):x = self.cv1(x)with warnings.catch_warnings():warnings.simplefilter('ignore') # suppress torch 1.9.0 max_pool2d() warningy1 = self.m(x)y2 = self.m(y1)return self.cv2(torch.cat([x, y1, y2, self.m(y2)], 1))
找不到图片
原因:路径含有中文
NameError: name ‘warnings’ is not defined
warrings会标红,记得 import warnings
AttributeError: ‘Upsample’ object has no attribute ‘recompute_scale_factor’
yolov5s.pt文件的版本问题,代码中默认下载最新版本
这个我猜可能是预训练权重yolov5s.pt]的问题,因为小土堆是5.0的工程,代码中默认下载的是最新的模型,所以与实际的version5.0不匹配
所以我又去下载了一个,然后把 yolov5s.pt 给覆盖掉了,这个错误就消失了
附上下载链接:https://github.com/ultralytics/yolov5/releases/download/v5.0/yolov5s.pt
其实就是version5的release界面,往下拉
https://github.com/ultralytics/yolov5/releases/tag/v5.0