项目开发使用教程和常见问题和解决方法
目录
(3)Python开发工具(IDE): 强烈推荐Pycharm
(6)cannot import name 'model_urls'或者'load_state_dict_from_url'
(7)cannot import name 'InterpolationMode'
这AI吃大瓜相关项目的开发入门基础教程,凡是从公众号【AI吃大瓜】下载的源码,都可以参考本博文进行开发环境搭建
推荐使用Python3.8或Python3.7,更高版本可能存在版本差异问题,项目安装教程请参考(初学者入门,麻烦先看完下面教程,配置好开发环境):
- 项目开发使用教程和常见问题和解决方法
- 视频教程:1 手把手教你安装CUDA和cuDNN(1)
- 视频教程:2 手把手教你安装CUDA和cuDNN(2)
- 视频教程:3 如何用Anaconda创建pycharm环境
- 视频教程:4 如何在pycharm中使用Anaconda创建的python环境
- 推荐使用Python3.8或Python3.7,更高版本可能存在版本差异问题
【尊重原创,转载请注明出处】项目开发使用教程和常见问题和解决方法_pip安装tensorboard-CSDN博客
一、Python开发环境搭建
- 硬件:独立显卡,必须是NVIDIA的显卡,如1080显卡,2070显卡;cpu/硬盘/内存没有特殊要求
- 系统:Windows或者Linux系统均可以
如果项目涉及深度学习,如Pytorch,TensorFlow等深度学习框架,那么必须配置好GPU开发环境
1. 安装cuda cudnn(深度学习入门必装)
深度学习模型算法比较复杂,如果使用CPU计算,速度会很慢,因而需要使用GPU进行并行计算加速 。深度学习框架,如Pytorch,TensorFlow都支持GPU训练,使用GPU设备需要显卡的支持,比如常见1080显卡,2070显卡等,同时需要安装对应的显卡驱动,以及CUDA和cuDNN库。CUDA 是 NVIDIA 发明的一种并行计算平台和编程模型,它通过利用图形处理器 (GPU) 的处理能力,可大幅提升计算性能。而cuDNN(CUDA Deep Neural Network library)是NVIDIA打造的针对深度神经网络的加速库,是一个用于深层神经网络的GPU加速库。
NVIDIA显卡下载:NVIDIA GeForce 驱动程序 - N 卡驱动 | NVIDIA
CUDA下载:CUDA Toolkit Archive | NVIDIA Developer
cuDNN下载:v8.x:cuDNN Archive | NVIDIA Developer ,v9.xcuDNN 9.10.2 Downloads | NVIDIA Developer
(1)Windows安装方法
(2)Ubuntu18.04安装方法
- 参考安装教程:ubuntu18.04安装cuda和cudnn
- 安装好NVIDIA显卡可通过nvidia-smi查看cuda的最高支持版本,下载CUDA安装包时,只有小于或者等于该版本号即可
安装cuda
# 安装cuda:注意Driver去掉[x],不要安装Driver
sudo sh cuda_12.0.0_525.60.13_linux.run
# 在~/.bashrc添加环境变量
export PATH=/usr/local/cuda-12.0/bin:$PATH
export LD_LIBRARY_PATH=/usr/local/cuda-12.0/lib64:$LD_LIBRARY_PATH
export CUDA_HOME=/usr/local/cuda-12.0
# 激活环境变量后,可输入:nvdia-smi验证显卡使用情况
source ~/.bashrc
安装cudnn(cuda11.x选择cudnn8.x,cuda12.x选择cudnn9.x)
# 安装cudnn8.x:下载对应cuda版本的cudnn,然后解压,拷贝cudnn文件
sudo cp include/cudnn*.h /usr/local/cuda-12.0/include
sudo cp lib/libcudnn* /usr/local/cuda-12.0/lib64/
sudo chmod a+r /usr/local/cuda-12.0/include/cudnn.h
# 安装cudnn9.x: https://developer.nvidia.com/cudnn-downloads?target_os=Linux
wget https://developer.download.nvidia.com/compute/cudnn/9.10.2/local_installers/cudnn-local-repo-debian12-9.10.2_1.0-1_amd64.deb
sudo dpkg -i cudnn-local-repo-debian12-9.10.2_1.0-1_amd64.deb
sudo cp /var/cudnn-local-repo-debian12-9.10.2/cudnn-*-keyring.gpg /usr/share/keyrings/
sudo apt-get update
sudo apt-get -y install cudnn
2. 安装Python(推荐使用Anaconda)
项目Python版本开发使用Python3.8,更高版本可能不支持
(1)Windows安装python方法
- 视频教程:3 如何用Anaconda创建pycharm环境
- 视频教程:4 如何在pycharm中使用Anaconda创建的python环境
- 参考安装教程:Anaconda超详细安装教程(Windows环境下)
-
conda使用教程:Windows中Conda 创建和使用虚拟环境
(2)Ubuntu18.04安装python方法
(3)Python开发工具(IDE): 强烈推荐Pycharm
PyCharm 是由 JetBrains 打造的一款 Python IDE,可以支持调试、语法高亮、Project 管理、代码跳转、智能提示、自动完成、单元测试、版本控制等等
3. Pytorch安装(深度学习入门必装)
PyTorch是基于Torch的开源Python机器学习库
项目源码PyTorch版本最低支持torch==1.7.1, 建议使用torch==1.12.1 ,请根据自己CUDA版本选择安装
(1)安装torch==1.7.1
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
(2)安装torch==1.12.1
pip install torch==1.12.1+cu116 torchvision==0.13.1+cu116 torchaudio==0.12.1 --extra-index-url https://download.pytorch.org/whl/cu116
4. 安装项目依赖包
项目python依赖包,Windows和Ubuntu安装方法一致;一般项目都自带requirements.txt文件,里面包含了项目开发所需要的python依赖包已经对应的版本号,比如下图第一个依赖包numpy==1.18.5,说明项目使用了numpy库,对应的版本是1.18.5,你可选择使用pip安装对应的版本:
pip install numpy==1.18.5
# 或者
pip install numpy==1.18.5 -i https://pypi.tuna.tsinghua.edu.cn/simple
其中-i后面的网址,表示安装包的下载地址,国内pip安装速度慢,可以使用-i指定镜像源,加快安装速度
其他安装包也可以用pip一个一个的安装,或者直接安装所有依赖包:
pip install -r requirements.txt
PS:一般依赖包是向下兼容的,只需要安装比requirements版本号大于或者等于的版本即可
5. 运行项目Demo
项目一般都自带的demo.py文件,支持argparse的命令行输入,命令行可在终端(Terminal)运行。
项目一般会给出Linux运行脚本(bash),如下图所示,如果你在Linux开发,可直接复制粘贴到终端运行(注意要cd进入项目根目录,否则找不到文件)
# 测试图片
image_dir='data/test_image' # 测试图片的目录
weights="data/model/yolov5s_640/weights/best.pt" # 模型文件
out_dir="runs/test-result" # 保存检测结果
python demo.py --image_dir $image_dir --weights $weights --out_dir $out_dir
- 上面bash脚本中,其中$image_dir,$weights和$out_dir都是取image_dir,weights和out_dir的值,跟python的变量复制语句是一个意思,
- 但Windows系统不支持这种变量赋值语法哦!!!!
- 如果你Windows系统已经安装git ,则可以在git的终端中,直接输入上面的命令,无需修改
如果你在Windows开发,请去掉变量,修改为:
# 这种命令在Linux和Windows终端都支持,但语句比较长就不太美观了
python demo.py --image_dir data/test_image --weights data/model/yolov5s_640/weights/best.pt --out_dir runs/test-result
6. 可视化工具:TensorBoard使用方法
- 安装:使用pip安装依赖包:tensorboard==2.5.0和tensorboardX==2.1
- 使用方法:在终端(Terminal)输入命令:
# 需要安装tensorboard==2.5.0和tensorboardX==2.1
# 基本方法
tensorboard --logdir=path/to/log/
# 例如
tensorboard --logdir=work_space/mobilenet_v2_1.0_CrossEntropyLoss_20230228174645/log
- 可以看到训练过程的可视化效果:
7. 如何用CPU运行项目代码
由于CPU运行速度太慢,项目默认只支持GPU,如果你电脑没有NVIDIA的独立显卡,又特别想使用CPU运行测试,可以尝试这样修改:
- 不管是CPU还是GPU运行,项目环境都要先配置好,如果出现No module named 'xxx',那就表示相关依赖包没有安装,用pip install xxx即可
- 将项目代码device="cuda:0"或者device="cuda",全部都改为device="cpu",这样就切换为cpu模式运行了;不知道改哪里,那就在代码搜索关键词device,总之全部都要改
- 全部改完后,再执行,也许就可以使用CPU运行了;但速度十分慢
二、常见问题和解决方法
(1) No module named的问题
- 如果出现“No module named ***”的错误,请使用pip install *** 即可,例如出现下面的错误
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
ModuleNotFoundError: No module named 'basetrainer'
请使用pip安装:
pip install basetrainer -i https://pypi.tuna.tsinghua.edu.cn/simple
其中-i后面的网址,表示安装包的下载地址,国内pip安装速度慢,可以使用-i指定镜像源,加快安装速度
(2)目录路径填写错误问题
Windows开发初学者,经常犯的错误!!!!填写路径时,搞不清楚路径分隔符,注意Windows和Linux的路径的分隔符
Windows路径分割符:【\】或者【//】 ,在python中某些库也可以使用【/】,那到底怎么写呢?绝大部情况,使用【/】分隔符即可!!!
Linux(Ubuntu)路径分割符号:只能是【/】
(3)中文路径问题(特别注意)
Windows环境中,项目文件和数据目录都不要出现中文路径,否则会出现opencv读取图片异常等问题
(4)图片格式问题
项目默认只支持*.jpg *.png两张格式,如果你的图片是bmp, tif或者其他的图片,请在postfix参数中添加对应的图片格式即可,
比如设置函数传入参数postfix=["*.jpg", "*.png"] ,
如果你不知道哪里修改,搜索一下postfix就可以找到了
(5)OSError: 页面文件太小,无法完成操作
当你电脑配置太差时,训练时可能会出现一下错误;
问题说明: 这是因为你电脑性能太差了,内存不足
解决方法:修改训练参数workers和batch-size,例如设置--batch-size=8 --workers=0
batch_size: 8
num_workers: 0
(6)cannot import name 'model_urls'或者'load_state_dict_from_url'
由于一些版本升级,会导致部分接口函数不能使用,请确保版本对应
torch==1.7.1
torchvision==0.8.2
或者将对应python文件将
from torchvision.models.resnet import model_urls, load_state_dict_from_url
修改为:
from torch.hub import load_state_dict_from_url
model_urls = {
'mobilenet_v2': 'https://download.pytorch.org/models/mobilenet_v2-b0353104.pth',
'resnet18': 'https://download.pytorch.org/models/resnet18-5c106cde.pth',
'resnet34': 'https://download.pytorch.org/models/resnet34-333f7ec4.pth',
'resnet50': 'https://download.pytorch.org/models/resnet50-19c8e357.pth',
'resnet101': 'https://download.pytorch.org/models/resnet101-5d3b4d8f.pth',
'resnet152': 'https://download.pytorch.org/models/resnet152-b121ed2d.pth',
'resnext50_32x4d': 'https://download.pytorch.org/models/resnext50_32x4d-7cdf4587.pth',
'resnext101_32x8d': 'https://download.pytorch.org/models/resnext101_32x8d-8ba56ff5.pth',
'wide_resnet50_2': 'https://download.pytorch.org/models/wide_resnet50_2-95faca4d.pth',
'wide_resnet101_2': 'https://download.pytorch.org/models/wide_resnet101_2-32ee1156.pth',
}
(7)cannot import name 'InterpolationMode'
依然是版本问题:
# 如果你的Pytorch Version<1.10.0,则使用:
import PIL.Image as Image
transforms.RandomRotation(degrees=5, resample=Image.BILINEAR)
# 如果你的Pytorch Version>1.10.0,则使用:
from torchvision.transforms import InterpolationMode
transforms.RandomRotation(degrees=5, interpolation=InterpolationMode.BILINEAR), #