pytorch 笔记:DataLoader 扩展:构造图片DataLoader
数据来源:OneDrive for Business
涉及内容:pytorch笔记:Dataloader_UQI-LIUWJ的博客-CSDN博客
torchvision 笔记:ToTensor()_UQI-LIUWJ的博客-CSDN博客
torchvision 笔记:transforms.Normalize()_UQI-LIUWJ的博客-CSDN博客
torchvision 笔记:transforms.Compose()_UQI-LIUWJ的博客-CSDN博客
1 数据格式
在windows的cmd上敲下 tree /F :
─img
│ 00000.jpg
│ 00001.jpg
│ 00002.jpg
│ 00003.jpg
│ 00004.jpg
│ 00005.jpg
.....
|
|
│ 06998.jpg
│ 06999.jpg
│
└─splitlist_attr_cloth.txttest.txttest_bbox.txttest_landmards.txttrain.txttrain_attr.txttrain_bbox.txttrain_landmards.txtval.txtval_attr.txtval_bbox.txtval_landmards.txt
我们这里先只用train.txt和train_attr.txt
1.1 train.txt
我们只看前五行
img/00000.jpg
img/00001.jpg
img/00002.jpg
img/00003.jpg
img/00004.jpg
1.2 train_attrr.txt
也是只看前五行(每一行是这张图片在这6个类上所属的类别)
5 0 2 0 2 2
5 1 2 0 5 1
5 0 2 3 4 2
6 2 1 3 2 2
0 2 1 3 2 2
2 创建DataLoader
2.1 导入库
from PIL import Image
from torchvision import transforms, utils
import torch
from torch.utils.data import Dataset, DataLoader
2.2 preprocess
对于每一张输入的image进行ToTensor和归一化的操作
preprocess = transforms.Compose([transforms.ToTensor(),transforms.Normalize(mean=[0.485, 0.456, 0.406],std=[0.229, 0.224, 0.225])
])
2.3 从路径加载图片-->图片成为Tensor
def default_loader(path):img_pil = Image.open(path)img_pil = img_pil.resize((224,224))img_tensor = preprocess(img_pil)return img_tensor
2.4 定义DataSet
还是需要实现__getitem__和__len__操作
class trainset(Dataset):def __init__(self,loader=default_loader,img_path='split/train.txt',tgt_path='split/train_attr.txt',attr_no=0):self.images = open(img_path,'r')#img_path代表的文件是进行训练的图片路径的合集self.f_tmp=self.images.readlines()#self.target = open(tgt_path,'r')#img_path代表的文件是进行训练的图片标签的合集self.t_tmp=self.target.readlines()self.loader = loader #从路径中读取图片->变成Tensorself.attr_no=attr_nodef __getitem__(self, index):fn = self.f_tmp[index].strip()#'img/00001.jpg'img = self.loader(fn)#从路径中读取图片->变成Tensortt = self.t_tmp[index].strip()[self.attr_no]#由于有六个标签,我们一个一个设置return img,ttdef __len__(self):return len(self.f_tmp)
2.5 创建DataLoader
loader=DataLoader(trainset(),batch_size=4,shuffle=True)
2.6 查看 效果
四张图片以及对应的标签
for step,(batch_x,batch_x_y) in enumerate(loader):print(batch_x,batch_x_y)break
'''
tensor([[[[2.2489, 2.2489, 2.2489, ..., 2.2489, 2.2489, 2.2489],[2.2489, 2.2489, 2.2489, ..., 2.2489, 2.2489, 2.2489],[2.2489, 2.2489, 2.2489, ..., 2.2489, 2.2489, 2.2489],...,[2.2489, 2.2489, 2.2489, ..., 2.2489, 2.2489, 2.2489],[2.2489, 2.2489, 2.2489, ..., 2.2489, 2.2489, 2.2489],[2.2489, 2.2489, 2.2489, ..., 2.2489, 2.2489, 2.2489]],[[2.4286, 2.4286, 2.4286, ..., 2.4286, 2.4286, 2.4286],[2.4286, 2.4286, 2.4286, ..., 2.4286, 2.4286, 2.4286],[2.4286, 2.4286, 2.4286, ..., 2.4286, 2.4286, 2.4286],...,[2.4286, 2.4286, 2.4286, ..., 2.4286, 2.4286, 2.4286],[2.4286, 2.4286, 2.4286, ..., 2.4286, 2.4286, 2.4286],[2.4286, 2.4286, 2.4286, ..., 2.4286, 2.4286, 2.4286]],[[2.6400, 2.6400, 2.6400, ..., 2.6400, 2.6400, 2.6400],[2.6400, 2.6400, 2.6400, ..., 2.6400, 2.6400, 2.6400],[2.6400, 2.6400, 2.6400, ..., 2.6400, 2.6400, 2.6400],...,[2.6400, 2.6400, 2.6400, ..., 2.6400, 2.6400, 2.6400],[2.6400, 2.6400, 2.6400, ..., 2.6400, 2.6400, 2.6400],[2.6400, 2.6400, 2.6400, ..., 2.6400, 2.6400, 2.6400]]],[[[2.1633, 2.1633, 2.1633, ..., 2.1804, 2.1804, 2.1804],[2.1633, 2.1633, 2.1633, ..., 2.1804, 2.1804, 2.1804],[2.1633, 2.1633, 2.1633, ..., 2.1804, 2.1804, 2.1804],...,[2.0777, 2.0777, 2.0605, ..., 2.1290, 2.1290, 2.1290],[2.1119, 2.1119, 2.1119, ..., 2.1290, 2.1290, 2.1290],[2.1462, 2.1462, 2.1290, ..., 2.1119, 2.1119, 2.1119]],[[2.3410, 2.3410, 2.3410, ..., 2.3585, 2.3585, 2.3585],[2.3410, 2.3410, 2.3410, ..., 2.3585, 2.3585, 2.3585],[2.3410, 2.3410, 2.3410, ..., 2.3585, 2.3585, 2.3585],...,[2.2360, 2.2360, 2.2185, ..., 2.3060, 2.3060, 2.3060],[2.2710, 2.2710, 2.2710, ..., 2.3060, 2.3060, 2.3060],[2.3060, 2.3060, 2.2885, ..., 2.2885, 2.2885, 2.2885]],[[2.5529, 2.5529, 2.5529, ..., 2.5703, 2.5703, 2.5703],[2.5529, 2.5529, 2.5529, ..., 2.5703, 2.5703, 2.5703],[2.5529, 2.5529, 2.5529, ..., 2.5703, 2.5703, 2.5703],...,[2.4134, 2.4134, 2.3960, ..., 2.5180, 2.5180, 2.5180],[2.4483, 2.4483, 2.4483, ..., 2.5180, 2.5180, 2.5180],[2.4831, 2.4831, 2.4657, ..., 2.5006, 2.5006, 2.5006]]],[[[2.2489, 2.2489, 2.2489, ..., 2.2489, 2.2489, 2.2489],[2.2489, 2.2489, 2.2489, ..., 2.2489, 2.2489, 2.2489],[2.2489, 2.2489, 2.2489, ..., 2.2489, 2.2489, 2.2489],...,[2.2489, 2.2489, 2.2489, ..., 2.2489, 2.2489, 2.2489],[2.2489, 2.2489, 2.2489, ..., 2.2489, 2.2489, 2.2489],[2.2318, 2.2318, 2.2318, ..., 2.2489, 2.2489, 2.2489]],[[2.4286, 2.4286, 2.4286, ..., 2.4286, 2.4286, 2.4286],[2.4286, 2.4286, 2.4286, ..., 2.4286, 2.4286, 2.4286],[2.4286, 2.4286, 2.4286, ..., 2.4286, 2.4286, 2.4286],...,[2.4286, 2.4286, 2.4286, ..., 2.4286, 2.4286, 2.4286],[2.4286, 2.4286, 2.4286, ..., 2.4286, 2.4286, 2.4286],[2.4111, 2.4111, 2.4111, ..., 2.4286, 2.4286, 2.4286]],[[2.6400, 2.6400, 2.6400, ..., 2.6400, 2.6400, 2.6400],[2.6400, 2.6400, 2.6400, ..., 2.6400, 2.6400, 2.6400],[2.6400, 2.6400, 2.6400, ..., 2.6400, 2.6400, 2.6400],...,[2.6400, 2.6400, 2.6400, ..., 2.6400, 2.6400, 2.6400],[2.6400, 2.6400, 2.6400, ..., 2.6400, 2.6400, 2.6400],[2.6226, 2.6226, 2.6226, ..., 2.6400, 2.6400, 2.6400]]],[[[2.2489, 2.2489, 2.2489, ..., 2.2489, 2.2489, 2.2489],[2.2489, 2.2489, 2.2489, ..., 2.2489, 2.2489, 2.2489],[2.2489, 2.2489, 2.2489, ..., 2.2489, 2.2489, 2.2489],...,[2.2489, 2.2489, 2.2489, ..., 2.2489, 2.2489, 2.2489],[2.2489, 2.2489, 2.2489, ..., 2.2489, 2.2489, 2.2489],[2.2489, 2.2489, 2.2489, ..., 2.2489, 2.2489, 2.2489]],[[2.4286, 2.4286, 2.4286, ..., 2.4286, 2.4286, 2.4286],[2.4286, 2.4286, 2.4286, ..., 2.4286, 2.4286, 2.4286],[2.4286, 2.4286, 2.4286, ..., 2.4286, 2.4286, 2.4286],...,[2.4286, 2.4286, 2.4286, ..., 2.4286, 2.4286, 2.4286],[2.4286, 2.4286, 2.4286, ..., 2.4286, 2.4286, 2.4286],[2.4286, 2.4286, 2.4286, ..., 2.4286, 2.4286, 2.4286]],[[2.6400, 2.6400, 2.6400, ..., 2.6400, 2.6400, 2.6400],[2.6400, 2.6400, 2.6400, ..., 2.6400, 2.6400, 2.6400],[2.6400, 2.6400, 2.6400, ..., 2.6400, 2.6400, 2.6400],...,[2.6400, 2.6400, 2.6400, ..., 2.6400, 2.6400, 2.6400],[2.6400, 2.6400, 2.6400, ..., 2.6400, 2.6400, 2.6400],[2.6400, 2.6400, 2.6400, ..., 2.6400, 2.6400, 2.6400]]]]) ('1', '1', '0', '3')
'''
pytorch 笔记:DataLoader 扩展:构造图片DataLoader相关推荐
- pytorch 笔记: 扩展torch.autograd
1 扩展torch.autograd 向 autograd 添加操作需要为每个操作实现一个新的 Function 子类. 回想一下,函数是 autograd 用来编码操作历史和计算梯度的东西. 2 何 ...
- PYTORCH 笔记 DILATE 代码解读
dilate 完整代码路径:vincent-leguen/DILATE: Code for our NeurIPS 2019 paper "Shape and Time Distortion ...
- pytorch封装Dataset——封装一般的DataLoader与可迭代的DataLoader(pytorch Data学习五)
可迭代的DataLoader可以参考:pytorch构造可迭代的DataLoader,动态流式读取数据源,不担心内存炸裂(pytorch Data学习三) 一般DataLoader封装: 使用如下方法 ...
- 速成pytorch学习——6天Dataset和DataLoader
Pytorch通常使用Dataset和DataLoader这两个工具类来构建数据管道. Dataset定义了数据集的内容,它相当于一个类似列表的数据结构,具有确定的长度,能够用索引获取数据集中的元素. ...
- 编写transformers的自定义pytorch训练循环(Dataset和DataLoader解析和实例代码)
文章目录 一.Dataset和DataLoader加载数据集 1.torch.utils.data 2. 加载数据流程 3. Dataset 4. dataloader类及其参数 5. dataloa ...
- Pytorch 扩展单张图片维度
Pytorch 扩展单张图片维度@Elaine 训练数据一般都是(b,c,h,w),在测试时只输入一张图片,所以需要扩展维度,下面是扩展维度方法 import cv2 import torchimag ...
- 《Pytorch学习指南》- Dataset和Dataloader用法详解
目录 前言 DataSet DataLoader 数据构建 1. 创建Dataset 类 :sparkles: 2. 读取数据 :ambulance: 3. 返回数据 :zap: 读取数据 :art: ...
- 【小白学PyTorch】16.TF2读取图片的方法
<<小白学PyTorch>> 扩展之tensorflow2.0 | 15 TF2实现一个简单的服装分类任务 小白学PyTorch | 14 tensorboardX可视化教程 ...
- pytorch dataset_【小白学PyTorch】16.TF2读取图片的方法
<> 扩展之tensorflow2.0 | 15 TF2实现一个简单的服装分类任务 小白学PyTorch | 14 tensorboardX可视化教程 小白学PyTorch | 13 Ef ...
最新文章
- FFmpeg Basic学习笔记(4)
- 2018-2019-1 20165337 《信息安全系统设计基础》第一周学习总结
- 转:linux内核驱动中_IO, _IOR, _IOW, _IOWR 宏的用法与解析
- 算法2:邻居好说话:冒泡排序
- 天天算法 LeetCode-938-二叉搜索树的范围和
- Android为TV端助力 转载:android自定义view实战(温度控制表)!
- Codeigniter夸应用调用model
- postman下载与汉化
- excel文件服务器未响应,excel打不开文件未响应怎么处理-处理excel无法打开文件未响应的方法 - 河东软件园...
- Day11如何衡量算法的时间复杂度和空间复杂度
- 如何使用OpenCV-Python-dlib实现有关闭眼的检测、眨眼次数的计算?(附源码,绝对可用)
- 信息学奥赛一本通 1273:【例9.17】货币系统
- 如何开发微信礼品卡-服务端
- 20172313 2017-2018-2 《程序设计与数据结构》第十一周学习总结
- A500的dial过程选择phone
- MOS 管 场效应管 应用
- 计算机er保研选网络安全方向怎么样?
- mc服务器libs文件夹,我的世界为什么开不了服务器
- 大数据分析案例-基于KNN算法对茅台股票进行预测
- 浏览器间的差异之 event.keyCode
热门文章
- 【转】tcp链接的状态
- 开始认真学习Android了
- nodejs+express整合kindEditor实现图片上传
- 【设计模式】—— 外观模式Facade
- Oracle查询表结构的一些相关语句
- 执行 pip3 install selenium 时出现 fail to create process
- 主动触发被动模式从而挟持无线客户端 – Passive Karma Attack
- 用ajax更新div,如何使用ajax和jquery更新特定的div
- channels java_Java NIO channels
- mysql镜像远程连接_Docker创建MySQL镜像并成功进行远程连接