数据来源: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相关推荐

  1. pytorch 笔记: 扩展torch.autograd

    1 扩展torch.autograd 向 autograd 添加操作需要为每个操作实现一个新的 Function 子类. 回想一下,函数是 autograd 用来编码操作历史和计算梯度的东西. 2 何 ...

  2. PYTORCH 笔记 DILATE 代码解读

    dilate 完整代码路径:vincent-leguen/DILATE: Code for our NeurIPS 2019 paper "Shape and Time Distortion ...

  3. pytorch封装Dataset——封装一般的DataLoader与可迭代的DataLoader(pytorch Data学习五)

    可迭代的DataLoader可以参考:pytorch构造可迭代的DataLoader,动态流式读取数据源,不担心内存炸裂(pytorch Data学习三) 一般DataLoader封装: 使用如下方法 ...

  4. 速成pytorch学习——6天Dataset和DataLoader

    Pytorch通常使用Dataset和DataLoader这两个工具类来构建数据管道. Dataset定义了数据集的内容,它相当于一个类似列表的数据结构,具有确定的长度,能够用索引获取数据集中的元素. ...

  5. 编写transformers的自定义pytorch训练循环(Dataset和DataLoader解析和实例代码)

    文章目录 一.Dataset和DataLoader加载数据集 1.torch.utils.data 2. 加载数据流程 3. Dataset 4. dataloader类及其参数 5. dataloa ...

  6. Pytorch 扩展单张图片维度

    Pytorch 扩展单张图片维度@Elaine 训练数据一般都是(b,c,h,w),在测试时只输入一张图片,所以需要扩展维度,下面是扩展维度方法 import cv2 import torchimag ...

  7. 《Pytorch学习指南》- Dataset和Dataloader用法详解

    目录 前言 DataSet DataLoader 数据构建 1. 创建Dataset 类 :sparkles: 2. 读取数据 :ambulance: 3. 返回数据 :zap: 读取数据 :art: ...

  8. 【小白学PyTorch】16.TF2读取图片的方法

    <<小白学PyTorch>> 扩展之tensorflow2.0 | 15 TF2实现一个简单的服装分类任务 小白学PyTorch | 14 tensorboardX可视化教程 ...

  9. pytorch dataset_【小白学PyTorch】16.TF2读取图片的方法

    <> 扩展之tensorflow2.0 | 15 TF2实现一个简单的服装分类任务 小白学PyTorch | 14 tensorboardX可视化教程 小白学PyTorch | 13 Ef ...

最新文章

  1. FFmpeg Basic学习笔记(4)
  2. 2018-2019-1 20165337 《信息安全系统设计基础》第一周学习总结
  3. 转:linux内核驱动中_IO, _IOR, _IOW, _IOWR 宏的用法与解析
  4. 算法2:邻居好说话:冒泡排序
  5. 天天算法 LeetCode-938-二叉搜索树的范围和
  6. Android为TV端助力 转载:android自定义view实战(温度控制表)!
  7. Codeigniter夸应用调用model
  8. postman下载与汉化
  9. excel文件服务器未响应,excel打不开文件未响应怎么处理-处理excel无法打开文件未响应的方法 - 河东软件园...
  10. Day11如何衡量算法的时间复杂度和空间复杂度
  11. 如何使用OpenCV-Python-dlib实现有关闭眼的检测、眨眼次数的计算?(附源码,绝对可用)
  12. 信息学奥赛一本通 1273:【例9.17】货币系统
  13. 如何开发微信礼品卡-服务端
  14. 20172313 2017-2018-2 《程序设计与数据结构》第十一周学习总结
  15. A500的dial过程选择phone
  16. MOS 管 场效应管 应用
  17. 计算机er保研选网络安全方向怎么样?
  18. mc服务器libs文件夹,我的世界为什么开不了服务器
  19. 大数据分析案例-基于KNN算法对茅台股票进行预测
  20. 浏览器间的差异之 event.keyCode

热门文章

  1. 【转】tcp链接的状态
  2. 开始认真学习Android了
  3. nodejs+express整合kindEditor实现图片上传
  4. 【设计模式】—— 外观模式Facade
  5. Oracle查询表结构的一些相关语句
  6. 执行 pip3 install selenium 时出现 fail to create process
  7. 主动触发被动模式从而挟持无线客户端 – Passive Karma Attack
  8. 用ajax更新div,如何使用ajax和jquery更新特定的div
  9. channels java_Java NIO channels
  10. mysql镜像远程连接_Docker创建MySQL镜像并成功进行远程连接