Yolov5 + 从CPU转GPU + Python多版本切换 + Conda包处理
文章目录
-
- Yolov5 + 从CPU转GPU + Python多版本切换 + Conda包处理
- 1.Pytorch套件中存在版本不匹配
- 2.numpy停留在3.8没跟上pytorch2.2.2
- 3.ModuleNotFoundError: No module named 'pandas._libs.interval'
- 4.ImportError: cannot import name '_c_internal_utils' from partially initialized module 'matplotlib' (most likely due to a circular import)
- 5. 单升级matplotlib导致依赖缺失未升级
- 6.ImportError: The scipy install you are using seems to be broken, (extension modules cannot be imported)
- 7.If reserved but unallocated memory is large try setting PYTORCH_CUDA_ALLOC_CONF=expandable_segments:True to avoid fragmentation. See documentation for Memory Management 炸空间
- 8.NotImplementedError: Could not run ‘torchvision::nms' with arguments from the 'cuDA' backend.
1.Pytorch套件中存在版本不匹配
这是后续一系列惨烈报错的起点,包括但不限于pytorch与torch,torch与torchvision,numpy与python,升级python及numpy导致matplotlib多版本残留,处理matplotlib又导致scipy包损坏,最后一切修好后出现炸掉空间无法启动。。。。。。
ERROR: pip’s dependency resolver does not currently take into account all the packages that are installed. This behaviour is the source of the following dependency conflicts.
torchvision 0.17.2 requires torch==2.2.2, but you have torch 1.8.0 which is incompatible.
解决办法
与此前自动升级了torch而落下torchvision相反,这次是torch被落下(
发生原因是用conda create -n yolov5 python=3.8后,考虑原项目使用的是
torch==1.80+python3.8.16
把torch,torchvision,python都从低版本升级到高版本后,各种问题开始浮上水面。
2.numpy停留在3.8没跟上pytorch2.2.2
torch OSError: [WinError 126] 找不到指定的模块
升级numpy
pip install --upgrade numpy
3.ModuleNotFoundError: No module named ‘pandas._libs.interval’
(yolo5) C:\Users\ASUS\Desktop\yolo\yolov5>python train.py --img 640 --batch 32 --epoch 3 --data data/horse.yaml --cfg models/yolov5s.yaml --weights weights/yolov5s.pt
Traceback (most recent call last):
File “C:\Users\ASUS\Desktop\yolo\yolov5\train.py”, line 49, in
import val as validate # for end-of-epoch mAP
^^^^^^^^^^^^^^^^^^^^^^
File “C:\Users\ASUS\Desktop\yolo\yolov5\val.py”, line 39, in
from models.common import DetectMultiBackend
File “C:\Users\ASUS\Desktop\yolo\yolov5\models\common.py”, line 18, in
import pandas as pd
File “E:\anaconda3\envs\yolo5\Lib\site-packages\pandas_init_.py”, line 22, in
from pandas.compat import is_numpy_dev as is_numpy_dev # pyright: ignore # noqa:F401
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "E:\anaconda3\envs\yolo5\Lib\site-packages\pandas\compat_init.py", line 25, in
from pandas.compat.numpy import (
File “E:\anaconda3\envs\yolo5\Lib\site-packages\pandas\compat\numpy_init_.py”, line 4, in
from pandas.util.version import Version
File “E:\anaconda3\envs\yolo5\Lib\site-packages\pandas\util_init_.py”, line 2, in
from pandas.util._decorators import ( # noqa:F401
File “E:\anaconda3\envs\yolo5\Lib\site-packages\pandas\util_decorators.py”, line 14, in
from pandas.libs.properties import cache_readonly
File "E:\anaconda3\envs\yolo5\Lib\site-packages\pandas_libs_init.py", line 13, in
from pandas._libs.interval import Interval
ModuleNotFoundError: No module named ‘pandas._libs.interval’
缺了pandas小小的库依赖。。。
pip install --force-reinstall pandas
4.ImportError: cannot import name ‘_c_internal_utils’ from partially initialized module ‘matplotlib’ (most likely due to a circular import)
Traceback (most recent call last):
File “C:\Users\ASUS\Desktop\yolo\yolov5\models\common.py”, line 27, in