使用pytorch进行图像的顺序读取方法


Posted in Python onJuly 27, 2018

产生此次实验的原因:当我使用pytorch进行神经网络的训练时,需要每次向CNN传入一组图像,并且这些图片的存放位置是在两个文件夹中:

A文件夹:图片1a,图片2a,图片3a……图片1000a

B文件夹:图片1b, 图片2b,图片3b……图片1000b

所以在每个循环里,我都希望能从A中取出图片Na,同时从B文件夹中取出对应的图片Nb。

测试一:通过pytorch官方文档中的dataloader搭配python中的迭代器iterator

dataset = dset.ImageFolder( 
 root='./folder1', 
 transform=transforms.Compose([ 
  transforms.ToTensor(), 
  transforms.Normalize((0.5,0.5,0.5), (0.5,0.5,0.5)), # bring images to (-1,1) 
 ]) 
) 
dataloader1 = torch.utils.data.DataLoader(dataset, batch_size=opt.batchSize, shuffle=True, num_workers=opt.workers) 
iterator1 = iter(dataloader1)
for i in range(1,1001):
data = iterator1.next() 
data2 = iterator2.next()

将两个dataloader当作数据集,然后分别调用迭代器iter(),然后在每次调用的时候使用next()来得到数据。

测试一下:将每次读入的图像输出,不对!发现图像并不是按照图像1,图像2,图像3......这样顺序读取的,而是很奇怪的顺序。所以为了要顺序读取数据,我们需要使用别的方法。

测试一的实验结果:此路不通!

from PIL import Image
pathDir = os.listdir('./folder') #获取文件夹内所有文件的名称,生成数组 
 pathDir.sort() #对所有文件名进行排序
 for allDir in pathDir: 
 child = os.path.join('%s/%s' % ('./folder', allDir))#合成文件名 
 fopen = Image.open(child).convert('RGB') #通过PIL读取文件
 transform_list = [transforms.ToTensor(), 
    transforms.Normalize((0.5, 0.5, 0.5), 
  (0.5, 0.5, 0.5))] 
 transform = transforms.Compose(transform_list)#将PIL格式的文件转换成 tensor
 image = transform(fopen) #转换

测试二:首先得到文件夹下的所有文件名,将文件名数组做sort()排序,然后每次通过文件名读取图像。

输出每次读入的图片,发现每次排序不正确,它的排序方法是图片1,图片10,图片100……

与我们的期望不一样,所以这种方法也不对(可以重写sort函数来进行自定义的排序,这里不做深入探究)

测试二的实验结果:此路或许可通!

测试三:通过自己构造每次访问的文件名来访问

for i in range(1,1001): 
 drain = irain.next() 
 dnorain = iground.next() 
 drain = os.path.join('%s/图像%s' % ('./rainy_img', i)) #跟上面一样,不过因为已经知道文件的取名顺序,所以拼出需要访问的文件名
 fopen = Image.open(drain).convert('RGB') 
 drain = transform(fopen) 
 print(drain)

测试三的实验结果:此路畅通无阻!

以上这篇使用pytorch进行图像的顺序读取方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Python 相关文章推荐
Python记录详细调用堆栈日志的方法
May 05 Python
python语言中with as的用法使用详解
Feb 23 Python
Python Xml文件添加字节属性的方法
Mar 31 Python
解决python3爬虫无法显示中文的问题
Apr 12 Python
在Mac下使用python实现简单的目录树展示方法
Nov 01 Python
Python中常用的内置方法
Jan 28 Python
python中yield的用法详解——最简单,最清晰的解释
Apr 04 Python
Django 反向生成url实例详解
Jul 30 Python
Python实现计算图像RGB均值方式
Jun 04 Python
学python最电脑配置有要求么
Jul 05 Python
Python3爬虫里关于代理的设置总结
Jul 30 Python
python使用matplotlib绘制折线图的示例代码
Sep 22 Python
PyTorch读取Cifar数据集并显示图片的实例讲解
Jul 27 #Python
pytorch 数据集图片显示方法
Jul 26 #Python
mac安装pytorch及系统的numpy更新方法
Jul 26 #Python
浅谈pytorch和Numpy的区别以及相互转换方法
Jul 26 #Python
pytorch: tensor类型的构建与相互转换实例
Jul 26 #Python
pytorch中tensor的合并与截取方法
Jul 26 #Python
Python爬虫框架Scrapy常用命令总结
Jul 26 #Python
You might like
PHP 批量删除数据的方法分析
2009/10/30 PHP
微信公众号实现会员卡领取功能
2017/06/08 PHP
Laravel 5.4前后台分离,通过不同的二级域名访问方法
2019/10/13 PHP
JS setCapture 区域外事件捕捉
2010/03/18 Javascript
仅IE不支持setTimeout/setInterval函数的第三个以上参数
2011/05/25 Javascript
使用js声明数组,对象在jsp页面中(获得ajax得到json数据)
2013/11/05 Javascript
Javascript之this关键字深入解析
2013/11/12 Javascript
判断window.onload是否多次使用的方法
2014/09/21 Javascript
JS实现网页标题栏显示当前时间和日期的完整代码
2015/11/02 Javascript
JS+CSS3实现超炫的散列画廊特效
2016/07/16 Javascript
微信小程序开发一键登录 获取session_key和openid实例
2016/11/23 Javascript
jqGrid翻页时数据选中丢失问题的解决办法
2017/02/13 Javascript
Vue框架中正确引入JS库的方法介绍
2017/07/30 Javascript
vue实现样式之间的切换及vue动态样式的实现方法
2017/12/19 Javascript
three.js实现3D模型展示的示例代码
2017/12/31 Javascript
关于jquery中attr()和prop()方法的区别
2018/05/28 jQuery
vueJs实现DOM加载完之后自动下拉到底部的实例代码
2018/08/31 Javascript
JavaScript栈和队列相关操作与实现方法详解
2018/12/07 Javascript
echarts多条折线图动态分层的实现方法
2019/05/24 Javascript
Vue+axios+WebApi+NPOI导出Excel文件实例方法
2019/06/05 Javascript
Python正则表达式教程之三:贪婪/非贪婪特性
2017/03/02 Python
Python自动生产表情包
2017/03/17 Python
pandas 读取各种格式文件的方法
2018/06/22 Python
python读取图片任意范围区域
2019/01/23 Python
在Python中调用Ping命令,批量IP的方法
2019/01/26 Python
python如何运行js语句
2020/09/09 Python
Python3+PyCharm+Django+Django REST framework配置与简单开发教程
2021/02/16 Python
python爬虫破解字体加密案例详解
2021/03/02 Python
欧洲最大的笔和书写专家:The Pen Shop
2017/03/19 全球购物
一套英文Java笔试题面试题
2016/04/21 面试题
高一家长会邀请函
2014/01/12 职场文书
2015年大学生工作总结
2015/04/21 职场文书
考研英语辞职信
2015/05/13 职场文书
导游词之青城山景区
2019/09/27 职场文书
Oracle11g r2 卸载干净重装的详细教程(亲测有效已重装过)
2021/06/04 Oracle
python index() 与 rindex() 方法的使用示例详解
2022/12/24 Python