Pytorch数据加载与使用
前言
在训练的时候通常使用Dataset来处理数据集。
Dataset的作用
提供一个方式获取数据内容和标签(label)。
实战
from torch.utils.data import Dataset
from PIL import Image
import os
class get_data(Dataset):
def __init__(self,root_dir, label_dir):
self.root_dir = root_dir
self.label_dir = label_dir
self.img_dir = os.path.join(root_dir,label_dir)
self.img_list = os.listdir(self.img_dir)
def __getitem__(self, indx):
img_path = os.path.join(self.img_dir,self.img_list[indx])
img_label = self.label_dir
img_data = Image.open(img_path)
return img_data,img_label
def __len__(self):
return len(self.img_list)
root_dir = "C:\\Users\\Traveler\\Pictures"
label_dir = "Screenshots"
test = get_data(root_dir,label_dir)
img , label = test[1]
# img.show()
print(label)
print(len(test))
此代码定义了一个fet_data类,继承了Dataset,主要提供两个方法,获取数据(getitem)和获取大小(len)。
然而这两个方法使用的是内置的类,当达到一定条件时自动触发,比如__getitem__当需要获取数据时自动触发这个方法。
getitem
返回两个数据,一个是data,一个是label,实现原理就是主要看这两个函数,
os.listdir()是获取一个路径下的文件名(包含后缀)列表。类似于[‘1.txt’,'2.jpg']
Image.open()是打开图片文件的,打开一个图片后会赋值很多属性:如下图

使用img.show()就可以打开,img.size()就可以获取大小。
另外os的其他函数也挺重要,比如os.path.join()就是拼接路径,这个的好处是防止Linux和Windows之间的路径不匹配问题。
Pytorch数据加载与使用的更多相关文章
- PyTorch数据加载处理
PyTorch数据加载处理 PyTorch提供了许多工具来简化和希望数据加载,使代码更具可读性. 1.下载安装包 scikit-image:用于图像的IO和变换 pandas:用于更容易地进行csv解 ...
- pytorch数据加载
一.方法一数据组织形式dataset_name----train----val from torchvision import datasets, models, transforms # Data ...
- pytorch数据加载器
class torch.utils.data.DataLoader(dataset, batch_size=1, shuffle=False, sampler=None, num_workers=0, ...
- PyTorch 数据集类 和 数据加载类 的一些尝试
最近在学习PyTorch, 但是对里面的数据类和数据加载类比较迷糊,可能是封装的太好大部分情况下是不需要有什么自己的操作的,不过偶然遇到一些自己导入的数据时就会遇到一些问题,因此自己对此做了一些小实 ...
- [源码解析] PyTorch 分布式(1) --- 数据加载之DistributedSampler
[源码解析] PyTorch 分布式(1) --- 数据加载之DistributedSampler 目录 [源码解析] PyTorch 分布式(1) --- 数据加载之DistributedSampl ...
- [源码解析] PyTorch 分布式(2) --- 数据加载之DataLoader
[源码解析] PyTorch 分布式(2) --- 数据加载之DataLoader 目录 [源码解析] PyTorch 分布式(2) --- 数据加载之DataLoader 0x00 摘要 0x01 ...
- transformers 之Trainer对应的数据加载
基础信息说明 本文以Seq2SeqTrainer作为实例,来讨论其模型训练时的数据加载方式 预训练模型:opus-mt-en-zh 数据集:本地数据集 任务:en-zh 机器翻译 数据加载 Train ...
- ScrollView嵌套ListView,GridView数据加载不全问题的解决
我们大家都知道ListView,GridView加载数据项,如果数据项过多时,就会显示滚动条.ScrollView组件里面只能包含一个组件,当ScrollView里面嵌套listView,GridVi ...
- python多种格式数据加载、处理与存储
多种格式数据加载.处理与存储 实际的场景中,我们会在不同的地方遇到各种不同的数据格式(比如大家熟悉的csv与txt,比如网页HTML格式,比如XML格式),我们来一起看看python如何和这些格式的数 ...
- flask+sqlite3+echarts3+ajax 异步数据加载
结构: /www | |-- /static |....|-- jquery-3.1.1.js |....|-- echarts.js(echarts3是单文件!!) | |-- /templates ...
随机推荐
- 国内版Unity 6 Preview编辑器无法切换到DX12的解决方案(6000.0.5f1c1已解决)
先放解决方案的链接:https://www.cnblogs.com/horeaper/p/18200364 6000.0.0f1c1问题依旧,仍然是没有D3D12文件夹: 不仅新文件不加,旧文件(ha ...
- 暑假java自学进度总结02
一.今日所学: 1.配置环境变量 在系统内配置java路径后,再在path中 利用系统路径配置Java编译工具和运行工具路径. 2.下载并安装Natepad++,并且配置相关设置 3.初步了解了Jav ...
- Vue 基于VSCode结合Vetur+ESlint+Prettier统一Vue代码风格
基于VSCode结合Vetur+ESlint+Prettier统一Vue代码风格 插件安装 安装Vetur,ESlint, Prettier - Code formatter插件 安装方法(安装ESl ...
- 关于UE5打包DLC
首先打开Project Lanucher,参考下图:,其次编辑配置两个edit Profile,参考下图: 第一个用来打包项目,第二个生成DLC,dlc填写的名字和插件一样,Main的配置如下: DL ...
- ffmpeg精简
自:http://www.chinavideo.org/viewthread.php?tid=5567&extra=page%3D1&page=2 现在更新一下目前遇到的问题: 我想裁 ...
- jmeter目录结构含义
backups :脚本备份目录.格式JMXbin目录∶存放Jmeter的启动脚本,配置文件.模块文件.jmeter.bat启动Jmeterjmeter.properties核心配置文件.docs:离线 ...
- Nuxt.js 环境变量配置与使用
title: Nuxt.js 环境变量配置与使用 date: 2024/7/25 updated: 2024/7/25 author: cmdragon excerpt: 摘要:"该文探讨了 ...
- lambda表达式用法
(参数列表)->{代码块}; (int a,int b)->{return a+b;}; 本质为匿名函数 参数的类型可以省略: (a,b)->{return a+b;} 当参数只有一 ...
- 基于Hive的大数据分析系统
1.概述 在构建大数据分析系统的过程中,我们面对着海量.多源的数据挑战,如何有效地解决这些零散数据的分析问题一直是大数据领域研究的核心关注点.大数据分析处理平台作为应对这一挑战的利器,致力于整合当前主 ...
- 《Python数据可视化之matplotlib实践》 源码 第四篇 扩展 第十章
图 10.1 import matplotlib.pyplot as plt import numpy as np plt.axes([0.1, 0.7, 0.3, 0.3], frameon=Tru ...