文章目录

  • 前言
  • 一、定义的数据集,未做预处理。
  • 二、定义数据集,并做数据预处理。
    • 1.预处理部分
    • 2.定义数据过程

前言

MNIST数据这个最最基础的数据集已经被走在程序猿道路上的同学们玩坏了,所以今天教大家如何搞一个自定义数据集。


一、定义的数据集,未做预处理。

下面展示一些 内联代码片

import  os
from  torch.utils.data import  Dataset ,DataLoader
from PIL import Image#1.创建数据集类,使用torch.utils.data中的Dataset方法。
class My_Dataset(Dataset):#2.循环找到文件路径,并添加标签def __init__(self,main_dir,data_type,transforms):self.dataset=[]#空列表为装新增一个标签的数据库self.transforms=transformsif data_type==0:data_filename='train'elif data_type is 1:data_filename='val'else:data_filename='test'for i , cls_filename in enumerate(os.listdir(os.path.join(main_dir,data_filename))):for i ,img_data in enumerate(os.listdir(os.path.join(main_dir,data_filename,cls_filename))):self.dataset.append([os.path.join(main_dir,data_filename,cls_filename,img_data),int(img_data[0]) ])#3.计算图片长度,方便后面迭代def __len__(self):return len(self.dataset)#为了获取图片长度,方便迭代#4、取出图片路径,并打开,便于做数据预处理def __getitem__(self, index):img,label=self.dataset[index]img_data=Image.open(img)img_data=self.transforms(img_data)return img_data,label

示例:@TOC

二、定义数据集,并做数据预处理。

包括旋转、裁剪、转为张量、扩大、正则化等等。

1.预处理部分

#4、取出图片路径,并打开,便于做数据预处理
def __getitem__(self, index):img,label=self.dataset[index]img_data=self.data_process(Image.open(img))return img_data,label#5.数据处理,数据增强、加噪声等等
def data_process(self,x):return transforms.Compose([transforms.ToTensor(),transforms.Normalize(mean=(0.5,),std=(0.5,))])(x)

2.定义数据过程

代码如下(示例):

import  os
from  torchvision import transforms
from  torch.utils.data import  Dataset ,DataLoader
from PIL import Image#1.创建数据集类,使用torch.utils.data中的Dataset方法。
class My_Dataset(Dataset):#2.循环找到文件路径,并添加标签def __init__(self,main_dir,data_type):self.dataset=[]#空列表为装新增一个标签的数据库if data_type==0:data_filename='train'elif data_type is 1:data_filename='val'else:data_filename='test'for i , cls_filename in enumerate(os.listdir(os.path.join(main_dir,data_filename))):for i ,img_data in enumerate(os.listdir(os.path.join(main_dir,data_filename,cls_filename))):self.dataset.append([os.path.join(main_dir,data_filename,cls_filename,img_data),i ])#3.计算图片长度,方便后面迭代def __len__(self):return len(self.dataset)#为了获取图片长度,方便迭代#4、取出图片路径,并打开,便于做数据预处理def __getitem__(self, index):img,label=self.dataset[index]img_data=self.data_process(Image.open(img))return img_data,label#5.数据处理,数据增强、加噪声等等def data_process(self,x):return transforms.Compose([transforms.ToTensor(),transforms.Normalize(mean=(0.5,),std=(0.5,))])(x)
``

三、如何搞自定义数据集?相关推荐

  1. PaddlePaddle飞桨《高层API助你快速上手深度学习》『深度学习7日打卡营』--自定义数据集OCEMOTION–中文情感分类

    赛题背景 自从2017年具有划时代意义的Transformer模型问世以来,短短两年多的时间内,如雨后春笋般的出现了大量的预训练模型,比如:Bert,Albert,ELECTRA,RoBERta,T5 ...

  2. paddle2.0高层API实现自定义数据集文本分类中的情感分析任务

    paddle2.0高层API实现自定义数据集文本分类中的情感分析任务 本文包含了: - 自定义文本分类数据集继承 - 文本分类数据处理 - 循环神经网络RNN, LSTM - ·seq2vec· - ...

  3. [Python图像识别] 五十.Keras构建AlexNet和CNN实现自定义数据集分类详解

    该系列文章是讲解Python OpenCV图像处理知识,前期主要讲解图像入门.OpenCV基础用法,中期讲解图像处理的各种算法,包括图像锐化算子.图像增强技术.图像分割等,后期结合深度学习研究图像识别 ...

  4. ML之FE:基于自定义数据集(银行客户信息贷款和赔偿)对比实现特征衍生(手动设计新特征、利用featuretools工具实现自动特征生成)

    ML之FE:基于自定义数据集(银行客户信息贷款和赔偿)对比实现特征衍生(手动设计新特征.利用featuretools工具实现自动特征生成) 目录 基于自定义数据集(银行客户信息贷款和赔偿)对比实现特征 ...

  5. 我用 PyTorch 复现了 LeNet-5 神经网络(自定义数据集篇)!

    大家好,我是红色石头! 在上三篇文章: 这可能是神经网络 LeNet-5 最详细的解释了! 我用 PyTorch 复现了 LeNet-5 神经网络(MNIST 手写数据集篇)! 我用 PyTorch ...

  6. 【深度学习】我用 PyTorch 复现了 LeNet-5 神经网络(自定义数据集篇)!

    在上三篇文章: 这可能是神经网络 LeNet-5 最详细的解释了! 我用 PyTorch 复现了 LeNet-5 神经网络(MNIST 手写数据集篇)! 我用 PyTorch 复现了 LeNet-5 ...

  7. 55_pytorch,自定义数据集

    1.55.自定义数据 1.55.1.数据传递机制 我们首先回顾识别手写数字的程序: ... Dataset = torchvision.datasets.MNIST(root='./mnist/', ...

  8. YOLOv5自定义数据集训练

    YOLOv5自定义数据集训练 简介 本文介绍如何在自己的VOC格式数据集上训练YOLO5目标检测模型. VOC数据集格式 首先,先来了解一下Pascal VOC数据集的格式,该数据集油5个部分组成,文 ...

  9. 目标检测第8步:如何在Windows10系统下,训练YOLOv5 5.0自定义数据集?(本地)

    请先看这篇文章:                        本博打开方式!!!请详读!!!请详读!!!请详读!!!_Cat-CSDN博客 很多刚入门的粉丝私信我说,他们的电脑配置很好,想在本地训练 ...

最新文章

  1. Django博客系统项目需求分析
  2. ICCV 2021 Workshop 盘点
  3. ICCV 2017 DSiam:《Learning Dynamic Siamese Network for Visual Object Tracking》论文笔记
  4. jsp的jstl的foreach标签
  5. winform datagridview 提高性能。
  6. Android 通过字符串来获取R下面资源的ID 值 文字资源
  7. 【计算机网络复习 物理层】2.2 物理传输介质
  8. java基础语法实例教程_Java 基础语法
  9. ffmpeg 存流为hls文件
  10. python高级编程 豆瓣_《Python高级编程》读书笔记:方法解释顺序浅析
  11. 《Spring Security3》第四章第一部分翻译下(自定义的UserDetailsServic
  12. XX省大型门户网站运维服务项目方案
  13. Python爬虫QQ空间
  14. LPC1768 Flash 存储器加速模块
  15. c语言字符串作业题,C语言课后习题练习(四)
  16. 新手必看--test link使用步骤
  17. C语言 静音检测,ffmpeg静音检测 Autohotkey
  18. 一元二次方程代码c语言,一元二次方程求解程序完整代码
  19. 【php】empty()详解
  20. uniapp MySQL vue ES6 jQuery 个人整合

热门文章

  1. Android 10 新增的功能
  2. Failed to open zip file Gradle dependency cache be corrupt
  3. 超简单的react和typescript和引入scss项目搭建流程
  4. django学习教程
  5. Python20-Day05
  6. Spring 集成dubbo 找不到dubbo.xsd 文件的问题的想法概述
  7. 计算机名称改变之后,HOUDINI Server 连接不上的解决办法
  8. hihocoder offer收割编程练习赛11 B 物品价值
  9. Android程序员眼中世界上最遥远的距离
  10. php true true true,php-为什么此评估为true