首页 > 其他分享 >paddleDetection 训练自定义数据集 第二章 开始训练

paddleDetection 训练自定义数据集 第二章 开始训练

时间:2023-06-02 12:05:51浏览次数:44  
标签:yolov3 定义数据 训练 python darknet paddleDetection dataset --


paddleDetection 训练自定义数据集 第二章 开始训练

上一章 数据集制作



文章目录

  • paddleDetection 训练自定义数据集 第二章 开始训练
  • 一、环境
  • 二、安装
  • 1.安装miniconda
  • 2.安装paddlepaddle
  • 3.下载paddleDetection
  • 三、训练自定义数据集
  • 1.首先选择预训练模型,然后修改配置文件
  • 2.训练
  • 3.导出模型
  • 总结



# 前言

使用paddleDetection训练自定义数据集。


提示:以下是本篇文章正文内容,下面案例可供参考

一、环境

  1. paddlepaddle2.0
  2. python3.7
  3. miniconda4.8.3 CUDA >= 9.0
  4. cuDNN >= 7.6
  5. paddleDetection

二、安装

1.安装miniconda


#创建 python3.7环境

2.安装paddlepaddle

#我安装的是paddlepaddle cuda9.0 根据实际环境安装 官网https://www.paddlepaddle.org.cn/
python -m pip install paddlepaddle-gpu==2.0.1.post90 -f https://paddlepaddle.org.cn/whl/mkl/stable.html
# 安装pycocotools
pip install pycocotools

3.下载paddleDetection

cd <path/to/clone/PaddleDetection>
git clone https://gitee.com/paddlepaddle/PaddleDetection
#安装依赖
pip install -r requirements.txt
#确认测试通过:
python ppdet/modeling/tests/test_architectures.py
#使用预训练模型预测图像,快速体验模型预测效果:
python tools/infer.py -c configs/ppyolo/ppyolo.yml -o use_gpu=true weights=https://paddlemodels.bj.bcebos.com/object_detection/ppyolo.pdparams --infer_img=demo/000000014439.jpg

三、训练自定义数据集

1.首先选择预训练模型,然后修改配置文件

#我是使用的车辆检测预训练模型 Vehicle Detection  

vim contrib/VehicleDetection/vehicle_yolov3_darknet.yml
#修改 metric: VOC 还有对应的地址
TrainReader:
  batch_size: 4
  dataset:
    !VOCDataSet
      dataset_dir: /home/aiuser/test/detection/dataset/zhakua_v2/VOCdevkit/
      anno_path: trainval.txt
      #image_dir: train2017
      with_background: false

EvalReader:
  batch_size: 4
  dataset:
    !VOCDataSet
      dataset_dir: /home/aiuser/test/detection/dataset/zhakua_v2/VOCdevkit/
      anno_path: test.txt
      #image_dir: val2017
      with_background: false

TestReader:
  batch_size: 1
  dataset:
    !ImageFolder
      anno_path: /home/aiuser/test/detection/dataset/zhakua_v2/VOCdevkit/label_list.txt
      with_background: false

paddleDetection 训练自定义数据集 第二章 开始训练_paddlepaddle

2.训练

python -u tools/train.py -c contrib/VehicleDetection/vehicle_yolov3_darknet.yml \
	-o       finetune_exclude_pretrained_params=['cls_score','bbox_pred']

paddleDetection 训练自定义数据集 第二章 开始训练_paddlepaddle_02

3.导出模型

#训练完以后会输出到 output/vehicle_yolov3_darknet/ 文件夹里

paddleDetection 训练自定义数据集 第二章 开始训练_深度学习_03

#预测
python -u tools/infer.py -c contrib/VehicleDetection/vehicle_yolov3_darknet.yml \
                    --infer_img=/home/aistudio/data/998.jpeg \
                    --output_dir=infer_output/ \
                    --draw_threshold=0.5 \
                    -o weights=./output/vehicle_yolov3_darknet/model_final \
#导出成可预测模型
python tools/export_model.py -c contrib/VehicleDetection/vehicle_yolov3_darknet.yml \
        --output_dir=./inference_model \
        -o weights=./output/vehicle_yolov3_darknet/model_fina
#./inference_model 
#使用paddlepaddle提供可嵌入的python代码运行模型
python deploy/python/infer.py --model_dir=./inference_model/vehicle_yolov3_darknet \
              --image_file=path/to/dataset/2572.jpeg \
              --use_gpu=True

结合自己的业务需求嵌入到代码中


总结




标签:yolov3,定义数据,训练,python,darknet,paddleDetection,dataset,--
From: https://blog.51cto.com/u_16015778/6401420

相关文章

  • paddleOcr 训练自定义数据
    paddleOcr训练自定义数据文章目录paddleOcr训练自定义数据前言一、创建环境二、安装环境三、使用ppocrlabel标注图片1.打开图片目录2.导出标记结果、导出识别结果四、训练1.切分数据2.修改训练的模型yml3.开始训练五、已经训练的模型,有了新数据需要继续训练1.使用恢复训练2.使......
  • Pytorch 分布式训练
    PytorchDDP分布式训练介绍近期一直在用torch的分布式训练,本文调研了目前Pytorch的分布式并行训练常使用DDP模式(DistributedDataParallell ),从基本概念,初始化启动,以及第三方的分布式训练框架展开介绍。最后以一个Bert情感分类给出完整的代码例子:torch-ddp-examples。基本......
  • 代码随想录算法训练营第二十三天|669. 修剪二叉搜索树
    [参考链接]669.修剪二叉搜索树 [代码]1#Definitionforabinarytreenode.2#classTreeNode(object):3#def__init__(self,val=0,left=None,right=None):4#self.val=val5#self.left=left6#self.right=right......
  • OCR -- 文本检测 - 训练DB文字检测模型
    百度飞桨(PaddlePaddle)-PP-OCRv3文字检测识别系统预测部署简介与总览百度飞桨(PaddlePaddle)-PP-OCRv3文字检测识别系统PaddleInference模型推理(离线部署)百度飞桨(PaddlePaddle)-PP-OCRv3文字检测识别系统基于PaddleServing快速使用(服务化部署-CentOS)百度飞......
  • 蓝桥杯----图论训练
    STL当想要维护一个数组,其中的元素要求有序,同时可能随时对这个数组中的元素进行增减有没有一个STL可以快速维护一个这样的数组?multiset(平衡二叉树) 默认从小到大排序注意离散化中清除重复元素的原理:unique()函数     vector......
  • Mysql训练营笔记
    Mysql架构与内部模块演示环境:MySQL5.7存储引擎:InnoDB一、一条查询SQL是如何执行的?  程序或者工具要操作数据库,第一步跟数据库建立连接。1、通信协议首先,MySQL必须要运行一个服务,监听默认的端口(3306)。通信协议MySQL支持多种通信协议。第一个就是TCP/IP协议,编......
  • 代码随想录算法训练营第二十二天|235. 二叉搜索树的最近公共祖先,701. 二叉搜索树中的
    [参考链接]235.二叉搜索树的最近公共祖先[注意]1.因为是有序树,所以如果中间节点是q和p的公共祖先,那么中间节点的数组一定是在[p,q]区间的。即中节点>p&&中节点<q或者中节点>q&&中节点<p。2.那么只要从上到下去遍历,遇到cur节点是数值在[p,q]区间中则一......
  • Spark技术在京东智能供应链预测的应用——按照业务进行划分,然后利用scikit learn进行
    3.3Spark在预测核心层的应用我们使用SparkSQL和SparkRDD相结合的方式来编写程序,对于一般的数据处理,我们使用Spark的方式与其他无异,但是对于模型训练、预测这些需要调用算法接口的逻辑就需要考虑一下并行化的问题了。我们平均一个训练任务在一天处理的数据量大约在500G左右,虽然数......
  • word2vec (一) 简介与训练过程概要
    词的向量化与word2vec简介word2vec最初是TomasMikolov发表的一篇文章[1],同时开源了相应的代码,作用是将所有词语投影到K维的向量空间,每个词语都可以用一个K维向量表示。为什么要将词用向量来表示呢?这样可以给词语一个数学上的表示,使之可以适用于某些算法或数学模型。通常将词语表示......
  • Python进行多输出(多因变量)回归:集成学习梯度提升决策树GRADIENT BOOSTING,GBR回归训练
    原文链接: http://tecdat.cn/?p=25939最近我们被客户要求撰写关于多输出(多因变量)回归的研究报告,包括一些图形和统计输出。在之前的文章中,我们研究了许多使用多输出回归分析的方法。在本教程中,我们将学习如何使用梯度提升决策树GRADIENTBOOSTINGREGRESSOR拟合和预测多输出回归......