paddlehub如何制作自定义数据集

CV类任务如何自定义数据

利用PaddleHub迁移CV类任务使用自定义数据时,用户需要自己切分数据集,将数据集且分为训练集、验证集和测试集。

数据准备

需要三个文本文件来记录对应的图片路径和标签,此外还需要一个标签文件用于记录标签的名称。

├─data: 数据目录

  ├─train_list.txt:训练集数据列表    

  ├─test_list.txt:测试集数据列表     

  ├─validate_list.txt:验证集数据列表 

  ├─label_list.txt:标签列表  

  └─……

训练/验证/测试集的数据列表文件的格式如下,列与列之间以空格键分隔。

图片1路径 图片1标签   

图片2路径 图片2标签   

...   

label_list.txt的格式如下

分类1名称     

分类2名称     

...   

示例: 以DogCat数据集为示例,train_list.txt/test_list.txt/validate_list.txt内容如下示例

cat/3270.jpg 0

cat/646.jpg 0

dog/12488.jpg 1

label_list.txt内容如下:

cat

dog

自定义数据加载

加载图像类自定义数据集,用户仅需要继承基类BaseCVDatast,修改数据集存放地址即可。具体使用如下:

NOTE:

  • 数据集文件编码格式建议为utf8格式。
  • dataset_dir为数据集实际路径,需要填写全路径,以下示例以/test/data为例。
  • 训练/验证/测试集的数据列表文件中的图片路径需要相对于dataset_dir的相对路径,例如图片的实际位置为/test/data/dog/dog1.jpg。base_path为/test/data,则文件中填写的路径应该为dog/dog1.jpg。
  • 如果您还有预测数据(没有文本类别),可以将预测数据存放在predict_list.txt文件,文件格式和train_list.txt类似。去掉label一列即可
  • 如果您的数据集类别较少,可以不用定义label_list.txt,可以选择定义label_list=["数据集所有类别"]。

from paddlehub.dataset.base_cv_dataset import BaseCVDataset

  

class DemoDataset(BaseCVDataset):  

   def __init__(self):

       # 数据集存放位置

       self.dataset_dir = "/test/data"

       super(DemoDataset, self).__init__(

           base_path=self.dataset_dir,

           train_list_file="train_list.txt",

           validate_list_file="validate_list.txt",

           test_list_file="test_list.txt",

           predict_file="predict_list.txt",

           label_list_file="label_list.txt",

           # label_list=["数据集所有类别"]

           )

dataset = DemoDataset()

 

 

 

 

 

以青春有你的项目任务为例:

一、任务简介

图像分类是计算机视觉的重要领域,它的目标是将图像分类到预定义的标签。近期,许多研究者提出很多不同种类的神经网络,并且极大的提升了分类算法的性能。本文以自己创建的数据集:青春有你2中选手识别为例子,介绍如何使用PaddleHub进行图像分类任务。

 

 

#CPU环境启动请务必执行该指令

%set_env CPU_NUM=1

 

#安装paddlehub

!pip install paddlehub==1.6.0 -i https://pypi.tuna.tsinghua.edu.cn/simple

 

二、任务实践

Step1、基础工作

加载数据文件

 

导入python包

 

# !unzip -o data.zip -d ./dataset/data.zip

!unzip -o /home/aistudio/dataset/data.zip

 

import paddlehub as hub

 

Step2、加载预训练模型

接下来我们要在PaddleHub中选择合适的预训练模型来Finetune,由于是图像分类任务,因此我们使用经典的ResNet-50作为预训练模型。PaddleHub提供了丰富的图像分类预训练模型,包括了最新的神经网络架构搜索类的PNASNet,我们推荐您尝试不同的预训练模型来获得更好的性能。

 

module = hub.Module(name="mobilenet_v3_large_imagenet_ssld")

Step3、数据准备

接着需要加载图片数据集。我们使用自定义的数据进行体验,请查看适配自定义数据

 

from paddlehub.dataset.base_cv_dataset import BaseCVDataset

  

class DemoDataset(BaseCVDataset): 

   def __init__(self):    

       # 数据集存放位置

      

       self.dataset_dir = "data"

       super(DemoDataset, self).__init__(

           base_path=self.dataset_dir,

           train_list_file="train_list.txt",

           validate_list_file="validate_list.txt",

           test_list_file="test_list.txt",

           label_list_file="label_list.txt",

           )

dataset = DemoDataset()

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值