前言
鉴于目前在公司研究算法部分,进行yolo相关学习和学习中途的内容记录
当前研究目的:利用YOLO完成特定物体的识别与分割,所选版本为YOLOV8
学习内容大致如下:
1.环境构建
2.内容复现
3.新物体的内容标定
4.新内容训练
5.性能调优和结果显示
在学习的过程中会尝试补全和巩固一部分学过的内容,最好对应的记录,内容主要研究实际应用
以下所作内容需具备一定的配置环境,依照前文中环境构建的结构进行的配置
Pytorch
定义与优点
PyTorch不仅是最受欢迎的深度学习框架之一,而且也是最强大的深度学习框架之一。它有许多独特的优点,使其在学术界和工业界都受到广泛的关注和使用。接下来我们就来详细地探讨一下PyTorch的优点。
1. 动态计算图
PyTorch最突出的优点之一就是它使用了动态计算图(Dynamic Computation Graphs,DCGs),与TensorFlow和其他框架使用的静态计算图不同。动态计算图允许你在运行时更改图的行为。这使得PyTorch非常灵活,在处理不确定性或复杂性时具有优势,因此非常适合研究和原型设计。
2.易用性
PyTorch被设计成易于理解和使用。其API设计的直观性使得学习和使用PyTorch成为一件非常愉快的事情。此外,由于PyTorch与Python的深度集成,它在Python程序员中非常流行。
3.易于调试
由于PyTorch的动态性和Python性质,调试PyTorch程序变得相当直接。你可以使用Python的标准调试工具,如PDB或PyCharm,直接查看每个操作的结果和中间变量的状态。
4. 强大的社区支持
PyTorch的社区非常活跃和支持。官方论坛、GitHub、Stack Overflow等平台上有大量的PyTorch用户和开发者,你可以从中找到大量的资源和帮助。
5. 广泛的预训练模型
PyTorch提供了大量的预训练模型,包括但不限于ResNet,VGG,Inception,SqueezeNet,EfficientNet等等。这些预训练模型可以帮助你快速开始新的项目。
6. 高效的GPU利用
PyTorch可以非常高效地利用NVIDIA的CUDA库来进行GPU计算。同时,它还支持分布式计算,让你可以在多个GPU或服务器上训练模型。
综上所述,PyTorch因其易用性、灵活性、丰富的功能以及强大的社区支持,在深度学习领域中备受欢迎。
常见使用场景
1. 计算机视觉
在计算机视觉方面,PyTorch提供了许多预训练模型(如ResNet,VGG,Inception等)和工具(如TorchVision),可以用于图像分类、物体检测、语义分割和图像生成等任务。这些预训练模型和工具大大简化了开发计算机视觉应用的过程。
2. 自然语言处理
在自然语言处理(NLP)领域,PyTorch的动态计算图特性使得其非常适合处理变长输入,这对于许多NLP任务来说是非常重要的。同时,PyTorch也提供了一系列的NLP工具和预训练模型(如Transformer,BERT等),可以帮助我们处理文本分类、情感分析、命名实体识别、机器翻译和问答系统等任务。
3. 生成对抗网络
生成对抗网络(GANs)是一种强大的深度学习模型,被广泛应用于图像生成、图像到图像的转换、样式迁移和数据增强等任务。PyTorch的灵活性使得其非常适合开发和训练GAN模型。
4. 强化学习
强化学习是一种学习方法,其中智能体通过与环境的交互来学习如何执行任务。PyTorch的动态计算图和易于使用的API使得其在实现强化学习算法时表现出极高的效率。
5. 时序数据分析
在处理时序数据的任务中,如语音识别、时间序列预测等,PyTorch的动态计算图为处理可变长度的序列数据提供了便利。同时,PyTorch提供了包括RNN、LSTM、GRU在内的各种循环神经网络模型。
安装(conda环境)
以下所编写的内容为用conda环境进行安装,方便项目管理也放置项目混乱或者各种包存在冲突的情况,没有的话,同样可以考虑使用venv进行环境的分离,在部分编辑器下,能自动的进行配置。
创建虚拟环境
conda create -n yolov8 python==3.8.0
建议使用conda的Prompt进行操作,如果使用默认的CMD窗口,需要配置环境变量。
在创建的时候,可以考虑走到指定的项目路径下进行创建。
查看虚拟环境状态
脚本如下:
conda env list
效果如下:
激活虚拟环境
脚本如下:
conda activate yolov8
效果如下:
安装pytorch包
如果在安装的过程中,觉得有点慢可以考虑进行镜像源的切换,可以下附:conda换源部分的介绍。
pytorech的版本可以依据实际的环境进行版本的切换。
pip install torch==1.9.0+cu111 torchvision==0.10.0+cu111 torchaudio==0.9.0 -f https://download.pytorch.org/whl/torch_stable.html
下载的时间会相对长一些,可以耐心多等待一会
查看环境状态
pip list
YOLOV8脚本下载与复现
接下来进行YOLOV8脚本的安装与基础内容的复现
脚本下载
githup地址:https://github.com/ultralytics/ultralytics
gitee地址:https://gitee.com/monkeycc/ultralytics
可以直接下载或者使用git进行安装
git clone https://github.com/ultralytics/ultralytics.git
使用vscode打开并进行环境切换
里面能看到所用包的具体脚本,真正在使用的过程中24年只用安装对应包就可以直接进行调用,作者对内容进行了一些优化,可以直接进行使用.
具体操作可以参考:https://docs.ultralytics.com/zh/quickstart/#use-ultralytics-with-python
pip install ultralytics
下载测试模型
下载地方为githup地址下方
新建文件夹wighte,将下载的模型放置与文件夹下
内容复现测试
进入到对应的文件夹目录下
执行如下命令
yolo task=segment mode=predict model=wighte/yolov8s.pt source=ultralytics/assets/bus.jpg save=true
效果
附:conda 常见命令
一、创建虚拟环境
conda create --name env_name
conda create --name env_name python=3.5 # 创建指定python版本
conda create --name env_name python=3.5 numpy scipy # 创建指定python版本下包含某些包
二、激活/使用/进入某个虚拟环境
activate env_name
三、退出当前环境
deactivate
四、复制某个虚拟环境
conda create --name new_env_name --clone old_env_name
五、删除某个环境
conda remove --name env_name --all
conda env remove -n env_name
六、查看当前所有环境
conda info --envs 或者 conda env list
七、查看当前虚拟环境下的所有安装包
conda list 需进入该虚拟环境
conda list -n env_name
八、安装或卸载包(进入虚拟环境之后)
conda install xxx
conda install xxx=版本号 # 指定版本号
conda install xxx -i 源名称或链接 # 指定下载源
conda uninstall xxx
九、分享虚拟环境
conda env export > environment.yml # 导出当前虚拟环境
conda env create -f environment.yml # 创建保存的虚拟环境
十、源服务器管理
conda当前的源设置在$HOME/.condarc中,可通过文本查看器查看或者使用命令>conda config --show-sources查看。
conda config --show-sources #查看当前使用源
conda config --remove channels 源名称或链接 #删除指定源
conda config --add channels 源名称或链接 #添加指定源
例如:
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/conda-forge/
国内pip源
阿里云 http://mirrors.aliyun.com/pypi/simple/
中国科技大学 https://pypi.mirrors.ustc.edu.cn/simple/
豆瓣(douban) http://pypi.douban.com/simple/
清华大学 https://pypi.tuna.tsinghua.edu.cn/simple/
中国科学技术大学 http://pypi.mirrors.ustc.edu.cn/simple/
十一、升级
升级Anaconda需先升级conda
conda update conda
conda update anaconda
十二、卸载
rm -rf anaconda
十三、批量导出虚拟环境中的所有组件
conda list -e > requirements.txt # 导出
conda install --yes --file requirements.txt # 安装
十四、pip批量导出环境中的所有组件
pip freeze > requirements.txt
pip install -r requirements.txt
附:conda换源
配置清华源,需要依次进行
conda config --add channels http://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/
conda config --add channels http://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main/
conda config --add channels http://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/pytorch/
conda config --add channels http://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/conda-forge/
conda config --add channels http://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/msys2/
conda config --add channels http://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/menpo/
conda config --add channels http://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/bioconda/
conda config --set show_channel_urls yes
查看状态
conda config --show channels
阿里云源切换
pip config set install.trusted-host mirrors.aliyun.com