首页
社区
课程
招聘
yolov5环境搭建和训练自己的模型
发表于: 2023-3-31 00:13 18340

yolov5环境搭建和训练自己的模型

2023-3-31 00:13
18340

下载地址

先在cmd执行nvidia-smi,查看驱动版本,下载对应的cuda版本

下载地址

安装的时候选择默认路劲,安装完成在cmd执行nvcc -V,能查到cuda版本证明安装成功

下载跟cuda版本对应的cdDNN版本

解压后,把三个文件夹直接复制到cuda的安装目录

创建python虚拟环境

激活虚拟环境

生成.condarc文件

配置源,把下面内容复制进去,保存

下载地址

选择对应cuda版本的PyTorch安装命令
图片描述

测试是否安装成功
图片描述

下载yolov5

安装依赖包,先删掉这两行,因为PyTorch我们已经安装过了

然后安装

下载yolov5s.pt,放到根目录
图片描述

运行命令

测试结果会保存在run目录下面
图片描述

安装lableImg

labelImg常用快捷键

新建images和labels文件夹,把准备好的游戏截图放到images目录下,然后用labelimg开始标注(怎么标注,自己百度),总共标注5个类(hero,door,moster,money,boss)。

主要修改train的图片位置、类的个数和类的名字

只要修改nc的数量就可以

cache用disk或者ram都可以
如果内存不够,把work数再改小点

train完成后会在run/exp1/weights目录下会生产一个best.pt文件,用它来detect

经过yolov5训练后,最终识别准备率能达到0.9以上。

图片描述
图片描述
图片描述

https://repo.anaconda.com/archive/
https://repo.anaconda.com/archive/
 
https://developer.nvidia.com/cuda-toolkit-archive
https://developer.nvidia.com/cuda-toolkit-archive
https://developer.nvidia.com/rdp/cudnn-download
https://developer.nvidia.com/rdp/cudnn-download
conda activate
conda create -n yolov5_test python=3.8
conda activate
conda create -n yolov5_test python=3.8
activate yolov5_test
activate yolov5_test
#会在当前目录生产.condarc文件
conda config --set show_channel_urls yes
#会在当前目录生产.condarc文件
conda config --set show_channel_urls yes
channels:
  - defaults
show_channel_urls: true
default_channels:
  - https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main
  - https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/r
  - https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/msys2
custom_channels:
  conda-forge: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud
  msys2: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud
  bioconda: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud
  menpo: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud
  pytorch: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud
  pytorch-lts: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud
  simpleitk: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud
channels:
  - defaults
show_channel_urls: true
default_channels:
  - https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main
  - https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/r
  - https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/msys2
custom_channels:
  conda-forge: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud
  msys2: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud
  bioconda: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud
  menpo: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud
  pytorch: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud
  pytorch-lts: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud
  simpleitk: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud
https://pytorch.org/get-started/previous-versions/
https://pytorch.org/get-started/previous-versions/
conda install pytorch==1.12.1 torchvision==0.13.1 torchaudio==0.12.1 cudatoolkit=11.6 -c pytorch -c conda-forge
 
#如果上面安装报错提示:“ An error occurred while installing package 'conda-forge.....' ”
#执行`conda update -n base -c defaults conda`进行更新源,再重新安装PyTorch
conda install pytorch==1.12.1 torchvision==0.13.1 torchaudio==0.12.1 cudatoolkit=11.6 -c pytorch -c conda-forge
 
#如果上面安装报错提示:“ An error occurred while installing package 'conda-forge.....' ”
#执行`conda update -n base -c defaults conda`进行更新源,再重新安装PyTorch
https://github.com/ultralytics/yolov5
https://github.com/ultralytics/yolov5

[注意]传递专业知识、拓宽行业人脉——看雪讲师团队等你加入!

最后于 2023-3-31 00:23 被zhang_derek编辑 ,原因:
收藏
免费 22
支持
分享
最新回复 (19)
雪    币: 229
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
2
收藏
2023-3-31 11:26
0
雪    币: 729
活跃值: (1195)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
3
非常有意思啊。
2023-3-31 11:39
0
雪    币: 1671
活跃值: (215852)
能力值: ( LV4,RANK:40 )
在线值:
发帖
回帖
粉丝
4
数据标的人麻了
2023-3-31 13:03
0
雪    币: 14633
活跃值: (17729)
能力值: ( LV12,RANK:290 )
在线值:
发帖
回帖
粉丝
5
感谢分享,接下来的内容就交给DQN了 
2023-3-31 15:23
0
雪    币: 576
活跃值: (2035)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
6
感谢分享,mark
2023-3-31 16:22
0
雪    币: 313
活跃值: (2427)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
7
想试但不想标注
2023-4-3 13:36
0
雪    币: 1334
活跃值: (1995)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
8
pureGavin 感谢分享,接下来的内容就交给DQN了 [em_86]
dqn貌似训练时间长,ppo,td3这类比较好点。
2023-4-4 09:13
0
雪    币: 14633
活跃值: (17729)
能力值: ( LV12,RANK:290 )
在线值:
发帖
回帖
粉丝
9
库尔 dqn貌似训练时间长,ppo,td3这类比较好点。
关键看训练效果,不过我也没试过
2023-4-4 09:33
0
雪    币: 1334
活跃值: (1995)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
10
shinratensei 数据标的人麻了
https://github.com/AlvaroCavalcante/auto_annotate 可以用这个看看能不能减少标注,不过我觉得勤奋点能展现人的价值。
2023-4-4 09:45
0
雪    币: 1334
活跃值: (1995)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
11
pureGavin 关键看训练效果,不过我也没试过

改天我试试,不过强化学习这种估计要自定义GYM吧。Reward设计估计是精髓

最后于 2023-4-4 10:16 被库尔编辑 ,原因:
2023-4-4 09:49
0
雪    币: 14633
活跃值: (17729)
能力值: ( LV12,RANK:290 )
在线值:
发帖
回帖
粉丝
12
库尔 pureGavin 关键看训练效果,不过我也没试过 改天我试试,不过强化学习这种估计要自定义GYM吧。Reward设计估计是精髓
有这方面的教程或者样例代码吗?我也想自己亲手训练一下试试效果
2023-4-4 11:19
0
雪    币: 1334
活跃值: (1995)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
13

游戏教程网上有,水深得很,不过基本上只能在特定的gym支持的游戏运行,要想特定的还得要改改。
1.  https://github.com/yannbouteiller/rtgym 这个是我已知能在现实环境中比较好改装得gym。
2. 会构造状态空间,根据不同游戏提取关键的变量和设计reward。其背后得原理还能追溯到物理学控制工程中得状态空间法。
3.我没搞这个,我上个礼拜做了一个Ai自动化fuzzing 挖掘二进制漏洞,用的也是强化学习,但是我会自己构造状态空间,试验项目在https://github.com/wrenchonline/AI_Fuzzing,漏洞代码超过12字节就会缓冲区溢出,11个字节基本上没事。训练十分钟这个ai就能够基本上12字节,但是模拟器是多线程,堆栈空间贝设定死了每次训练python堆栈限制都会卡住,后面改成多进程模拟。还有这个项目离实战距离可能还有一点距离,没有具体详细的数学算法了,所以fuzzing只能当个玩具看了。我只是试验而已。但当作自定义构造gym是可以参考下的。

最后于 2023-4-4 13:25 被库尔编辑 ,原因:
2023-4-4 13:20
0
雪    币: 1334
活跃值: (1995)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
14
pureGavin 有这方面的教程或者样例代码吗?我也想自己亲手训练一下试试效果

教程网上有,水深得很,不过基本上只能在特定的gym支持的游戏运行,要想特定的还得要改改。
1.  https://github.com/yannbouteiller/rtgym 这个是我已知能在现实环境中比较好改装得gym。
2. 会构造状态空间,根据不同游戏提取关键的变量和设计reward。其背后得原理还能追溯到物理学控制工程中得状态空间法。
3.我没搞这个,我上个礼拜做了一个Ai自动化fuzzing 挖掘二进制漏洞,用的也是强化学习,但是我会自己构造状态空间,试验项目在https://github.com/wrenchonline/AI_Fuzzing,漏洞代码输入内容payload超过12字节就会缓冲区溢出,11个字节以下基本上没事。训练十分钟这个ai就能够基本上12字节,但是模拟器是多线程,堆栈空间贝设定死了每次训练python堆栈限制都会卡住,后面改成多进程模拟。还有这个项目离实战距离可能还有一点距离,没有具体详细的数学算法了,所以fuzzing只能当个玩具看了。我只是试验而已。但当作自定义构造gym是可以参考下的

最后于 2023-4-4 16:10 被库尔编辑 ,原因:
2023-4-4 13:28
0
雪    币: 1334
活跃值: (1995)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
15
总结你只需要能够清楚自定义gym和reward就行了。剩下算法,可以先套皮。
2023-4-4 13:32
0
雪    币: 1372
活跃值: (5338)
能力值: ( LV13,RANK:240 )
在线值:
发帖
回帖
粉丝
16
库尔 总结你只需要能够清楚自定义gym和reward就行了。剩下算法,可以先套皮。
大佬啊。
2023-4-4 14:24
0
雪    币: 41
活跃值: (234)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
17
能来个视频更好了!!!
2024-1-13 18:27
0
雪    币: 1558
活跃值: (3588)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
18
库尔 总结你只需要能够清楚自定义gym和reward就行了。剩下算法,可以先套皮。
大佬你好,最近我也在思考能不能使用强化学习来优化脚本的打怪策略.我是专门写rpg游戏的.
可以收集到所有信息,比如怪物状态信息怪物技能轨迹,个人玩家人物信息,周围地形玩家信息.
一开始想用DQN,但是DQN局限性在于训练样本太多了通常要收集几千场对局数据.不太理想.
这样还不如自己手写的脚本策略.
不知道ppo,td3 这两种算法有哪些改进?
2024-3-26 01:14
0
雪    币: 1334
活跃值: (1995)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
19
qj111111 大佬你好,最近我也在思考能不能使用强化学习来优化脚本的打怪策略.我是专门写rpg游戏的. 可以收集到所有信息,比如怪物状态信息怪物技能轨迹,个人玩家人物信息,周围地形玩家信息. 一开始想用DQN, ...
首选无脑是ppo + L2 正则化,PPO算是把时域变成频域。算是基于策略或者说对局经验的算法。TD3和PPO类似,不过PPO与DQN差距较大。
2024-9-11 11:04
0
雪    币: 1426
活跃值: (3105)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
20
感谢分享
2024-9-11 13:19
0
游客
登录 | 注册 方可回帖
返回
//