Google Colab训练yolov3自定义数据集

news2024/11/24 4:18:53

共分7步:

一、进入Google Colab训练环境
二、下载编译Darknet
三、上传数据集
四、修改配置文件
五、下载预训练权重文件
六、开始训练数据
七、测试训练结果

一、进入Google Colab训练环境

打开 Google Drive 云端硬盘

新建Google Colaboratory文件,进入python运行环境。 

二、下载编译Darknet

yolov3基于darknet深度学习框架。

1. 运行如下代码,连接到Google Drive 云端硬盘

import os
from google.colab import drive
drive.mount('/content/drive')

 弹出提示框时,按提示点击允许连接即可。

2.下载darknet

import os
path = '/content/drive/MyDrive/darknet'
if not os.path.isdir(path):
  !git clone https://github.com/AlexeyAB/darknet.git

3. 修改makefile,开启GPU、cuda加速

 也可运行命令

%cd /content/drive/MyDrive/darknet
!sed -i 's/OPENCV=0/OPENCV=1/' Makefile
!sed -i 's/GPU=0/GPU=1/' Makefile
!sed -i 's/CUDNN=0/CUDNN=1/' Makefile
!sed -i 's/CUDNN_HALF=0/CUDNN_HALF=1/' Makefile
!sed -i 's/LIBSO=0/LIBSO=1/' Makefile

 4.验证CUDA版本 

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

 5.编译生成darknet项目。

!make

三、上传数据集

1. 将图片(*.jpg)和对应的标注文件(*.txt)放到同一文件夹下,并将数据放到darknet/data/obj文件夹下。我在网上找的口罩数据集。

 

四、修改配置文件

配置文件共有4个,即obj.data、obj.names、train.txt、yolov3-custom2.cfg。

 2.配置obj.data(位于darknet/data)

obj.data为训练数据的总配置文件。classes为类别数,train、valid、names路径要正确,valid可有可无。backup训练过程中或训练后的权重文件存储路径。

classes= 2
train  = data/train.txt
valid = data/valid.txt
names = data/obj.names
backup = backup/

  3.配置obj.names(位于darknet/data)

obj.names为类别名列表

mask1
mask2

 4.生成train.txt(放到darknet/data) 

 定位到darknet文件夹

%cd /content/drive/
%ls
%cd MyDrive/
%ls
%cd darknet/
%ls

 运行以下代码生成train.txt,注意数据集图片在该路径下(/content/drive/MyDrive/darknet/data/obj)。

import os

image_files = []
os.chdir("/content/drive/MyDrive/darknet/data/obj")
for filename in os.listdir(os.getcwd()):
    if filename.endswith(".jpg"):
        image_files.append("data/obj/" + filename)
os.chdir("..")
with open("train.txt", "w") as outfile:
    for image in image_files:
        outfile.write(image)
        outfile.write("\n")
    outfile.close()
os.chdir("..")

 生成的train.txt位于darknet下,需要手动移动到darknet/data下

 5.配置yolov3-custom2.cfg(位于darknet/cfg) 

复制darknet/cfg/yolov3.cfg,重命名为yolov3-custom2.cfg,打开并编辑

 

 修改一

  修改二,搜索yolo,修改classes、filters,共3处。

五、下载预训练权重文件

!wget http://pjreddie.com/media/files/darknet53.conv.74

 

六、开始训练数据

!./darknet detector train data/obj.data cfg/yolov3_custom2.cfg darknet53.conv.74 -dont_show

 等待数小时(我等了3个小时)后训练完成。

查看loss下降过程, 打开darknet/chart.png

权重文件位于darknet/backup 七、测试训练结果

!./darknet detector test data/obj.data cfg/yolov3_custom2.cfg ./backup/yolov3_custom2_last.weights masktest.jpg -thresh 0.3

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/43384.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

公共大数据集群中如何配置 YARN 的公平调度器和容量调度器

公共大数据集群中如何配置 YARN 的公平调度器和容量调度器 1 YARN 资源管理框架与公平/容量调度器 作为一款资源调度框架,Yarn 支持可插拔的调度器,常见的调度器有公平调度器 fair scheduler 和容量调度器 capacity scheduler。常见的大数据发行版中&a…

一张照片,如何生成一个二维码?

冬天落在恭王府的第一场大雪、春天聚在河边觅食的麻雀、盛夏午后从冰箱里拿出来的大西瓜、深秋爬满南墙的红叶……每一份惊喜和快乐,都值得分享给更多的朋友。 今天我们要介绍的是,如何将一张照片,做成一个二维码,扫码后就可以看…

利用两个小demo理解汇编代码排查内存溢出问题

利用两个小demo理解汇编代码排查内存溢出问题 https://www.cnblogs.com/liuchuanloong/articles/16925695.html 【背景】 近日处理现场问题时遇到了踩内存导致的崩溃问题,然而个人对反汇编程序执行过程不熟悉,通过查阅资料,对比分析两个小d…

不适用于云的应用程序有哪些?

所有应用程序都适合在云上运行吗?这是在云计算中寻求改进IT解决方案的企业经常问的一个问题。这个问题的答案是“视情况而定”。虽然企业云的应用正在飞速发展,大多数企业都在考虑将整个应用程序迁移到云上,以实现可伸缩、灵活、可访问、敏捷和精益的工…

PC端配置定位服务步骤(依赖于腾讯位置服务)

目录 第一步 : 安装 jsonp 第二步 : 在mian.js中配置并使用 第三步 : 在 manifest.json中进行相关配置 第四步 : 获取经纬度值,从而得到地址 第一步 : 安装 jsonp 执行此代码 : np…

Origin2022安装教程

Origin2022他来了! 本人虽然是Python和R的资深绘图用户,偶尔也用用Origin,Origin的优势区间是手动、全可控,要素复杂事图片效果好: 安装方法和安装包下载破解见文末: Origin 2022新要素 1.对地理要素和…

基于 51 单片机室内灯光控制系统

1. 功能介绍 这是基于 STC89C52 单片机设计的灯光控制系统,实现对室内灯光的控制,采集光敏传感器,红外线热释电传感器,声音传感器,光照照度传感器等数据进行处理,完成室内灯光的智能控制。 支持的功能与设…

VBox组件内部局域网

我使用VirtualBox并不是很专业,只是拿它来组件服务器。后来这个虚拟机对我越来越重要,我的各种测试服务器和学习服务器越来越多,于是我就给他们规划了IP地址,像这样: 我用的网络一直都是桥接,每个虚拟机都可以上网&…

高性能HTTP和反向代理Web服务器 - Nginx

Nginx一、安装1.1.Windows安装1.2.Linux安装1.3.常用命令二、动静分离三、反向代理3.1.正向代理3.2.反向代理四、负载均衡4.1.轮询4.2.加权轮询4.3.Ip hash五、限流六、缓存七、黑白名单Nginx是一个高性能的HTTP服务器和反向代理的web服务器,同时也提供IMAP&#xf…

一文带你读懂公司卫生间一直有人窜稀的原理

不知道你有没有这样的经历,一直忙忙碌碌,需求不断,当你终于解决完手头的事情,突然特别着急想要去卫生间的时候,仅有的几个门总是关着的,于是怀疑,可能其他人更需要这次机会,他们也一…

华为云安装Docker,在其中安装Tomcat运行Html项目一步到位

一日不学习浑身难受,对于追光者的我来说,就是这种情况!!!今天心血来潮,想把云服务器、Docker、Tomcat、Html项目集成一块进行练习,为了后面的部署项目做准备。 环境介绍:华为云cent…

KafKa存储机制

目录 存储机制 kafka 存储选型 Kafka 存储方案剖析 kafka 存储架构设计 kafka 日志系统架构设计 日志目录布局 磁盘数据存储 可靠性 Producer的可靠性保证 kafka 配置为 CP系统 kafka 配置为 AP系统 Broker 的可靠性保证 Consumer 的可靠性策略 AutoCommit&#xff…

【二叉树从无到有】

目录:前言一、树1.什么是树结构?2.为什么使用树结构?3.树的概念4.树的表示5.树在现实生活中的应用二、二叉树(一)二叉树概念既结构1.概念2.现实中的二叉树3.特殊的二叉树4.二叉树的性质5.二叉树的存储结构(…

线程的深度剖析

线程和进程的区别和联系: 1.进程可以处理多并发编程的问题,但是进程太重,主要指它的资源分配和资源回收上,进程消耗资源多,速度慢,其创建、销毁、调度一个进程开销比较大。 2.线程的出现有效地解决了这一…

面向对象的个人理解(使用JAVA代码描述)

前言 功能分类 类(class)的第一个功能是隔离,起到边界的作用,使得不同功能的代码互不干扰。 干扰的起源 在非面向对象的语言中,我们主要定义结构和函数来实现功能。下边用C语言来举个例子。 某程序员写了宠物模拟…

Ajax学习:nodejs安装+express框架介绍

ajsx应用中,需要安装nodejs环境 基于Chrome V8引擎(和浏览器上的谷歌的解析引擎一样)JavaScript运行环境 (31条消息) Node.js_安装_哇嘎123的博客-CSDN博客 查看安装是否完成 express框架介绍--为了创建一个web服务器 (31条消息) Express…

Spark系列之Spark体系架构

title: Spark系列 第四章 Spark体系架构 4.1 Spark核心功能 Alluxio 原来叫 tachyon 分布式内存文件系统Spark Core提供Spark最基础的最核心的功能,主要包括: 1、SparkContext 通常而言,DriverApplication的执行与输出都是通过SparkC…

STM32G491RCT6,STM32H743BIT6规格书 32bit IC MCU

STM32G4系列将强大的ArmCortex-M4加上FPU和DSP能力与丰富和先进的模拟外设相结合。它引入了两种新的数学加速器(Cordic和Filtering), CAN-FD (Flexible Datarate),USB Type-C接口的功率传输,包括物理层(PHY)和先进的安全功能。(图…

Day38——Dp专题

DP专题 动态规划五部曲: 确定dp数组以及下标的含义 确定递推公式 dp数组如何初始化 确定遍历顺序 举例推导dp数组 1.斐波那契数 题目链接:509. 斐波那契数 - 力扣(LeetCode) 思路:做dp类题目,根据…

Meta 内部都在用的 FX 工具大起底:利用 Graph Transformation 优化 PyTorch 模型

PyTorch 中的 graph mode 在性能方面表示更为出色,本文介绍 Torch.FX 这个强大工具,可以捕捉和优化 PyTorch 程序 graph。 一、简介 PyTorch 支持两种执行模式:eager mode 和 graph mode。 eager mode 中,模型中的运算符在读取时…