在谷歌colab运行YOLO系列(重要比在云服务器搭建运行快)

一、谷歌云硬盘

BS 10 EPOCH 200 WORKER 16

https://drive.google.com/drive/my-drive
在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

https://colab.research.google.com/drive/1GUyOrIBdNKRn0kzUPoydMZ17mC008Exn

此处类似notebook,可以修改名称

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

视频演示的是在darknet下运行如下
在这里插入图片描述

二、克隆 YOLOV5进行运行测试

cd /content/drive/MyDrive

前面进入了当前文件夹下了

然后克隆(这里建议不要克隆,直接上传文件到云端硬盘,上传YOLOV5,克隆的与本地不太一样)

!git clone https://github.com/ultralytics/yolov5

在这里插入图片描述

命令输错如下
在这里插入图片描述

克隆失败应该是没有git这个程序,那么直接上传YOLOV5的文件夹即可
在这里插入图片描述
在这里插入图片描述

直接克隆的YOLOV5太精简,安照上面格式添加weights权重文件夹,上传权重文件,传一个使用的即可s
在这里插入图片描述

视频中的修改配置等

在这里插入图片描述

!/usr/local/cuda/bin/nvcc --version

在这里插入图片描述

剩下的修改配置文件等就看YOLOV5的训练自己的数据集中的操作了

如何将我的数据集传到对应文件夹下,直接在云端硬盘界面上传数据集

如下:
在这里插入图片描述
在这里插入图片描述

这里上传已经预处理好的数据集

或者上传数据集然后 在线预处理等

执行python命令也要加感叹号
在这里插入图片描述

修改配置文件等可以直接在上面操作

上传权重文件先

直接克隆的YOLOV5太精简,安照上面格式添加weights权重文件夹,上传权重文件,传一个使用的即可s

上传数据集
在这里插入图片描述

这里将本地已经加压好的VOC原始数据集上传,还没有预处理的
预处理文件要根据自己的类别进行更改

1,修改prepare文件中的参数

在这里插入图片描述

修改配置文件

在这里插入图片描述

注意链接时要选择GPU这里的CPU感觉处理太慢

运行个CPU处理文件都这么慢
在这里插入图片描述

!python prepare_data.py

需要注意的是此处在线执行预处理,是比较慢一些的(下次直接在本地预处理,然后将预处理好的文件上传即可)

2,修改voc.yaml

修改配置文件

#download: bash data/scripts/get_voc.sh

上方注释掉,不需要在网络上下载数据集
注意还要将其重命名为voc_ball.yaml 或者不用
在这里插入图片描述

# download command/URL (optional) 
#download: bash data/scripts/get_voc.sh 
# train and val data as 1) directory: path/images/, 2) file: path/images.txt, or 
3) list: [path1/images/, path2/images/] 
train: ./VOCdevkit/images/train/   
val: ./VOCdevkit/images/val/   

在这里插入图片描述

# number of classes 
nc: 1 
# class names 
names: ['ball']

3,修改yolov5s.yaml

这里的训练集路径,验证集路径

Nc为分类标签的个数,这里只有一个类别1
下面names是类别名称
在这里插入图片描述
在这里插入图片描述

在notebook中更换配置为GPU
在这里插入图片描述

!python train.py --data data/voc_ball.yaml --cfg models/yolov5s_ball.yaml --weights weights/yolov5s.pt --batch-size 16 --epochs 50 --workers 4 

在这里插入图片描述

这里发现使用其TPU也是运行很快,比自己的云服务器还要快一些

在这里插入图片描述

缺点就是必须保持网站的在线状态,这样的话我自己在云服务器登录此谷歌云盘,然后链接点击运行测试岂不就可以一直运行了(离线好像只能保存到1个小时?)

!python train.py --data data/voc_ball.yaml --cfg models/yolov5s_ball.yaml --weights weights/yolov5s.pt --batch-size 16 --epochs 50 --workers 8

现在测试workers为8即默认状态 会不会溢出内存
在2核2G下是溢出失败了,直接谷歌实验室的话不知道多久可以
在这里插入图片描述

在这里插入图片描述

再次重新运行发现可以了,此时即便是workers为8也是可以的,不会超出内存,并且运行速度也很快(比自己的云服务器2核2G的快多了)差不多10分钟能训练一轮,那50轮是500分钟大概(8,9个小时)

https://blog.csdn.net/bornfree5511/article/details/106980379

4,防止colab自动断开的方式(必须要做的)

方法一
在Firefox和Chrome中,在colab页面,按Ctrl+Shit+i,打开检查页面(也可以右击鼠标,选择“检查”),并切换到控制台或terminal标签,chrome中为Console。
粘贴以下代码:

function ConnectButton(){
    console.log("Connect pushed"); 
    document.querySelector("#top-toolbar > colab-connect-button").shadowRoot.querySelector("#connect").click() 
}
setInterval(ConnectButton,60000);

执行了代码后,记下弹出的数字,那是intervalId,当想停止这段代码的执行时,只需要执行

clearInterval(intervalId)

就可以了,比如Id是340,那么就是clearInterval(340)。

在这里插入图片描述

浏览器打开状态最长运行时间是12小时

当浏览器关闭,最长运行使用则是90分钟

所以一个解决方案是在手机浏览器打开此实例运行(并且训练时长不要超过12小时)

在云服务器上使用还比较慢来,是国内服务器即便搭建小火箭访问国外也是慢,那么直接使用国外的云服务器访问怎样

半个小时才训练1轮bs16 workers8 谷歌实验室 TPU

如果连接上GPU呢?

还是无法连接到GPU

那么CPU也是可以的,那么就试试吧

算了等2C2G的训练完成了用它上面的网络测试

在海外云服务器上登陆谷歌实验室,链接如下,发现点击链接时链接的是GPU
https://colab.research.google.com/drive/1GUyOrIBdNKRn0kzUPoydMZ17mC008Exn

在这里插入图片描述

先进入到项目路径下

然后执行训练的代码如下

!python train.py --data data/voc_ball.yaml --cfg models/yolov5s_ball.yaml --weights weights/yolov5s.pt --batch-size 16 --epochs 50 --workers 8 

第一次运行错误,得再次运行播放
在这里插入图片描述

如上已经可以调用GPU了,训练速度及其快

5,断点续训

在这里插入图片描述

https://blog.csdn.net/weixin_38346042/article/details/119778080

当遭遇停电等不可预料的状态时,可以如上根据最新的pt文件再继续训练

注意断点续传,是需要前面后面环境相同的

即前面GPU后面还要GPU,否则训练报错

先关闭远程服务器,让其自己在那训练,浏览器先不关闭了

14:55开始,

15:11 已经到第8个轮次了,平均2分钟1个轮次,太快了太爽了

15:28 运行到18轮次

估计100分钟就训练完成了,之前使用云服务器2核2G训练了3天的。
也就一个小时40分钟

正好1个小时就完成了

这个算是跑通了

那么训练的服务器及方式不用担心了,那么此时需要管什么了

!/usr/local/cuda/bin/nvcc --version

我们可以查看GPU的版本
在这里插入图片描述

torch.cuda.is_available()
cuda是否可用;

torch.cuda.device_count()
返回gpu数量;

torch.cuda.get_device_name(0)
返回gpu名字,设备索引默认从0开始;

torch.cuda.current_device()
返回当前设备索引;

查看显卡信息如下

https://www.cnblogs.com/ggjucheng/archive/2013/01/14/2859613.html
查看谷歌实验室的硬件环境信息

!nvidia-smi

在这里插入图片描述

!lscpu

在这里插入图片描述

查看内存

!free -m

在这里插入图片描述

总内存 12991MB,也就是12G的内存

!uname -a

在这里插入图片描述
在这里插入图片描述

!cat /etc/issue

在这里插入图片描述

谷歌实验室是Ubuntu 18.04.5 LTS \n \l,
NVIDIA-SMI 470.57.02 Driver Version: 460.32.03 CUDA Version: 11.2
Intel® Xeon® CPU @ 2.30GHz

1CPU 1核12G 的

使用的python版本为3.7.11的版本

在这里插入图片描述

1核16G的

方法登录云服务器,安装chrome浏览器(登录谷歌云端硬盘及实验室进行测试)

发现每天有限制使用谷歌免费的GPU

那么尝试其他的云服务器的免费的GPU资源

腾讯云
https://cloud.tencent.com/act/pro/freegpu
7天免费试用

先等等吧,准备一下自己的数据集

数据集如何准备(只准备一个零件的还是多个零件都准备,然后全部的定位)

那么进行两个目标检测(一个零件的类别)

一个(缺陷的类别)

https://www.zhihu.com/question/271520755

发现很多的GPU服务器厂商,一周的话48元钱

那么直接租借一周如何

https://featurize.cn/?s=db3893519c0f42f0a047494763888c3f
https://matpool.com/edu
在这里插入图片描述

报错如上

原因找到,通过prepare转换的标签文件全部是空的,所以在本地转换为标签文件再进行上传
在这里插入图片描述
在这里插入图片描述

先在本地运行将数据集分类好,再进行上传分类好的数据集

Prepare预处理之后的文件是空的这怎么办

终于找到问题了(prepare准备数据集的时候也是需要改参数的)

936 882 正好找到54个了,下面将其一一删除即可

E:\工业零件数据集\LZC_Data\VOCdevkit_mobian\VOCdevkit\VOC2007\JPEGImages\Image__2021-09-01__09-47-35-21.jpg

E:\工业零件数据集\LZC_Data\VOCdevkit_mobian\VOCdevkit\VOC2007\JPEGImages\Image__2021-09-01__09-51-26-3.jpg

E:\工业零件数据集\LZC_Data\VOCdevkit_mobian\VOCdevkit\VOC2007\JPEGImages\Image__2021-09-01__09-51-26-5.jpg

E:\工业零件数据集\LZC_Data\VOCdevkit_mobian\VOCdevkit\VOC2007\JPEGImages\Image__2021-09-01__09-53-29-10.jpg

E:\工业零件数据集\LZC_Data\VOCdevkit_mobian\VOCdevkit\VOC2007\JPEGImages\Image__2021-09-01__09-53-29-17.jpg

E:\工业零件数据集\LZC_Data\VOCdevkit_mobian\VOCdevkit\VOC2007\JPEGImages\Image__2021-09-01__10-01-16-10.jpg

E:\工业零件数据集\LZC_Data\VOCdevkit_mobian\VOCdevkit\VOC2007\JPEGImages\Image__2021-09-01__10-02-42-11.jpg

E:\工业零件数据集\LZC_Data\VOCdevkit_mobian\VOCdevkit\VOC2007\JPEGImages\Image__2021-09-01__10-02-42-4.jpg

E:\工业零件数据集\LZC_Data\VOCdevkit_mobian\VOCdevkit\VOC2007\JPEGImages\Image__2021-09-01__10-07-29-13.jpg

E:\工业零件数据集\LZC_Data\VOCdevkit_mobian\VOCdevkit\VOC2007\JPEGImages\Image__2021-09-01__10-07-29-2.jpg

E:\工业零件数据集\LZC_Data\VOCdevkit_mobian\VOCdevkit\VOC2007\JPEGImages\Image__2021-09-01__10-07-29-3.jpg

E:\工业零件数据集\LZC_Data\VOCdevkit_mobian\VOCdevkit\VOC2007\JPEGImages\Image__2021-09-01__10-12-15-19.jpg

E:\工业零件数据集\LZC_Data\VOCdevkit_mobian\VOCdevkit\VOC2007\JPEGImages\Image__2021-09-01__10-12-15-20.jpg

E:\工业零件数据集\LZC_Data\VOCdevkit_mobian\VOCdevkit\VOC2007\JPEGImages\Image__2021-09-01__10-16-02-10.jpg

E:\工业零件数据集\LZC_Data\VOCdevkit_mobian\VOCdevkit\VOC2007\JPEGImages\Image__2021-09-01__10-16-02-11.jpg

E:\工业零件数据集\LZC_Data\VOCdevkit_mobian\VOCdevkit\VOC2007\JPEGImages\Image__2021-09-01__10-16-02-12.jpg

E:\工业零件数据集\LZC_Data\VOCdevkit_mobian\VOCdevkit\VOC2007\JPEGImages\Image__2021-09-01__10-16-02-2.jpg

E:\工业零件数据集\LZC_Data\VOCdevkit_mobian\VOCdevkit\VOC2007\JPEGImages\Image__2021-09-01__10-16-02-4.jpg


E:\工业零件数据集\LZC_Data\VOCdevkit_mobian\VOCdevkit\VOC2007\JPEGImages\Image__2021-09-01__10-16-02-8.jpg

E:\工业零件数据集\LZC_Data\VOCdevkit_mobian\VOCdevkit\VOC2007\JPEGImages\Image__2021-09-01__10-16-02-9.jpg

E:\工业零件数据集\LZC_Data\VOCdevkit_mobian\VOCdevkit\VOC2007\JPEGImages\Image__2021-09-01__10-17-41-14.jpg

E:\工业零件数据集\LZC_Data\VOCdevkit_mobian\VOCdevkit\VOC2007\JPEGImages\Image__2021-09-01__10-17-41-16.jpg

E:\工业零件数据集\LZC_Data\VOCdevkit_mobian\VOCdevkit\VOC2007\JPEGImages\Image__2021-09-01__10-17-41-17.jpg

E:\工业零件数据集\LZC_Data\VOCdevkit_mobian\VOCdevkit\VOC2007\JPEGImages\Image__2021-09-01__10-17-41-18.jpg

E:\工业零件数据集\LZC_Data\VOCdevkit_mobian\VOCdevkit\VOC2007\JPEGImages\Image__2021-09-01__10-17-41-19.jpg

E:\工业零件数据集\LZC_Data\VOCdevkit_mobian\VOCdevkit\VOC2007\JPEGImages\Image__2021-09-01__10-17-41-2.jpg

E:\工业零件数据集\LZC_Data\VOCdevkit_mobian\VOCdevkit\VOC2007\JPEGImages\Image__2021-09-01__10-17-41-20.jpg
E:\工业零件数据集\LZC_Data\VOCdevkit_mobian\VOCdevkit\VOC2007\JPEGImages\Image__2021-09-01__10-17-41-21.jpg

E:\工业零件数据集\LZC_Data\VOCdevkit_mobian\VOCdevkit\VOC2007\JPEGImages\Image__2021-09-01__10-17-41-22.jpg

E:\工业零件数据集\LZC_Data\VOCdevkit_mobian\VOCdevkit\VOC2007\JPEGImages\Image__2021-09-01__10-17-41-23.jpg

E:\工业零件数据集\LZC_Data\VOCdevkit_mobian\VOCdevkit\VOC2007\JPEGImages\Image__2021-09-01__10-17-41-3.jpg

E:\工业零件数据集\LZC_Data\VOCdevkit_mobian\VOCdevkit\VOC2007\JPEGImages\Image__2021-09-01__10-17-41-5.jpg

E:\工业零件数据集\LZC_Data\VOCdevkit_mobian\VOCdevkit\VOC2007\JPEGImages\Image__2021-09-01__10-17-41-6.jpg

E:\工业零件数据集\LZC_Data\VOCdevkit_mobian\VOCdevkit\VOC2007\JPEGImages\Image__2021-09-01__10-17-41-7.jpg

E:\工业零件数据集\LZC_Data\VOCdevkit_mobian\VOCdevkit\VOC2007\JPEGImages\Image__2021-09-01__10-17-41-8.jpg

E:\工业零件数据集\LZC_Data\VOCdevkit_mobian\VOCdevkit\VOC2007\JPEGImages\Image__2021-09-02__10-42-52-24.jpg

E:\工业零件数据集\LZC_Data\VOCdevkit_mobian\VOCdevkit\VOC2007\JPEGImages\Image__2021-09-02__10-44-12-2.jpg

E:\工业零件数据集\LZC_Data\VOCdevkit_mobian\VOCdevkit\VOC2007\JPEGImages\Image__2021-09-02__10-44-12-20.jpg

E:\工业零件数据集\LZC_Data\VOCdevkit_mobian\VOCdevkit\VOC2007\JPEGImages\Image__2021-09-02__10-51-21-3.jpg

E:\工业零件数据集\LZC_Data\VOCdevkit_mobian\VOCdevkit\VOC2007\JPEGImages\Image__2021-09-02__10-55-37-15.jpg

E:\工业零件数据集\LZC_Data\VOCdevkit_mobian\VOCdevkit\VOC2007\JPEGImages\Image__2021-09-02__10-55-37-19.jpg

E:\工业零件数据集\LZC_Data\VOCdevkit_mobian\VOCdevkit\VOC2007\JPEGImages\Image__2021-09-02__10-55-37-5.jpg


E:\工业零件数据集\LZC_Data\VOCdevkit_mobian\VOCdevkit\VOC2007\JPEGImages\Image__2021-09-02__10-55-37-6.jpg

E:\工业零件数据集\LZC_Data\VOCdevkit_mobian\VOCdevkit\VOC2007\JPEGImages\Image__2021-09-02__10-55-37-7.jpg

E:\工业零件数据集\LZC_Data\VOCdevkit_mobian\VOCdevkit\VOC2007\JPEGImages\Image__2021-09-02__10-57-26-4.jpg

E:\工业零件数据集\LZC_Data\VOCdevkit_mobian\VOCdevkit\VOC2007\JPEGImages\Image__2021-09-02__11-17-10-18.jpg

E:\工业零件数据集\LZC_Data\VOCdevkit_mobian\VOCdevkit\VOC2007\JPEGImages\Image__2021-09-02__11-17-10-22.jpg

E:\工业零件数据集\LZC_Data\VOCdevkit_mobian\VOCdevkit\VOC2007\JPEGImages\Image__2021-09-02__11-17-10-8.jpg

E:\工业零件数据集\LZC_Data\VOCdevkit_mobian\VOCdevkit\VOC2007\JPEGImages\Image__2021-09-02__11-18-41-22.jpg

E:\工业零件数据集\LZC_Data\VOCdevkit_mobian\VOCdevkit\VOC2007\JPEGImages\Image__2021-09-02__11-18-41-23.jpg

E:\工业零件数据集\LZC_Data\VOCdevkit_mobian\VOCdevkit\VOC2007\JPEGImages\Image__2021-09-02__11-24-50-19.jpg

E:\工业零件数据集\LZC_Data\VOCdevkit_mobian\VOCdevkit\VOC2007\JPEGImages\Image__2021-09-02__11-26-06-10.jpg

E:\工业零件数据集\LZC_Data\VOCdevkit_mobian\VOCdevkit\VOC2007\JPEGImages\Image__2021-09-02__11-26-06-8.jpg

E:\工业零件数据集\LZC_Data\VOCdevkit_mobian\VOCdevkit\VOC2007\JPEGImages\Image__2021-09-02__11-26-06-9.jpg
在Colab运行VTK(Visualization Toolkit)需要进行以下步骤: 1. 安装必要的软件包:在Colab的代码单元格中,使用以下命令安装VTK和相关软件包。 ```python !pip install vtk !apt-get update !apt-get install -y xvfb x11-utils !pip install pyvirtualdisplay !pip install EasyProcess ``` 2. 设置虚拟显示:在Colab的代码单元格中,使用以下代码设置虚拟显示。 ```python from easyprocess import EasyProcess from pyvirtualdisplay import Display display = Display(visible=0, size=(800, 600)) display.start() xvfb = EasyProcess(['Xvfb', ':1', '-screen', '0', '800x600x16']) xvfb.start() ``` 3. 导入VTK并进行测试:在Colab的代码单元格中,使用以下代码导入VTK并进行简单的测试。 ```python import vtk # 创建一个简单的VTK场景 renderer = vtk.vtkRenderer() renderWindow = vtk.vtkRenderWindow() renderWindow.SetWindowName("VTK Example") renderWindow.AddRenderer(renderer) # 创建一个简单的VTK演员 coneSource = vtk.vtkConeSource() coneMapper = vtk.vtkPolyDataMapper() coneMapper.SetInputConnection(coneSource.GetOutputPort()) coneActor = vtk.vtkActor() coneActor.SetMapper(coneMapper) # 将演员添加到场景中 renderer.AddActor(coneActor) # 创建一个渲染窗口交互器并启动事件循环 renderWindowInteractor = vtk.vtkRenderWindowInteractor() renderWindowInteractor.SetRenderWindow(renderWindow) renderWindow.Render() renderWindowInteractor.Start() ``` 以上是在Colab运行VTK的基本步骤。请注意,由于Colab是基于的环境,可能会受到一些限制,并且可能会在性能方面有所不同。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

吾名招财

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值