使用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入门篇之数字
Oct 20 Python
Python实现的简单文件传输服务器和客户端
Apr 08 Python
使用rpclib进行Python网络编程时的注释问题
May 06 Python
python基于itchat实现微信群消息同步机器人
Feb 27 Python
基于python进行桶排序与基数排序的总结
May 29 Python
python利用Opencv实现人脸识别功能
Apr 25 Python
pytz格式化北京时间多出6分钟问题的解决方法
Jun 21 Python
python SocketServer源码深入解读
Sep 17 Python
PYTHON发送邮件YAGMAIL的简单实现解析
Oct 28 Python
pytorch 实现张量tensor,图片,CPU,GPU,数组等的转换
Jan 13 Python
python 如何读、写、解析CSV文件
Mar 03 Python
Python实现滑雪小游戏
Sep 25 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实现保存submit内容之后禁止刷新
2014/03/19 PHP
thinkphp中空模板与空模块的用法实例
2014/11/26 PHP
smarty模板引擎之分配数据类型
2015/03/30 PHP
php实现上传图片文件代码
2015/07/19 PHP
Redis使用Eval多个键值自增的操作实例
2016/11/04 PHP
浅析PHP7的多进程及实例源码
2019/04/14 PHP
js中top、clientTop、scrollTop、offsetTop的区别 文字详细说明版
2011/01/08 Javascript
js 赋值包含单引号双引号问题的解决方法
2014/02/26 Javascript
wap图片滚动特效无css3元素纯js脚本编写
2014/08/22 Javascript
javascript鼠标跟随运动3种效果(眼球效果,苹果菜单,方向跟随)
2016/10/27 Javascript
Javascript中字符串相关常用的使用方法总结
2017/03/13 Javascript
JavaScript之排序函数_动力节点Java学院整理
2017/06/30 Javascript
Angularjs使用过滤器完成排序功能
2017/09/20 Javascript
Vue仿支付宝支付功能
2018/05/25 Javascript
解决包含在label标签下的checkbox在ie8及以下版本点击事件无效果兼容的问题
2019/10/27 Javascript
vue 接口请求地址前缀本地开发和线上开发设置方式
2020/08/13 Javascript
VUE 项目在IE11白屏报错 SCRIPT1002: 语法错误的解决
2020/09/27 Javascript
vue-quill-editor插入图片路径太长问题解决方法
2021/01/08 Vue.js
[00:32]2018DOTA2亚洲邀请赛OpTic出场
2018/04/03 DOTA
[48:12]Secret vs Optic Supermajor 胜者组 BO3 第三场 6.4
2018/06/05 DOTA
[02:44]重置世界,颠覆未来——DOTA2 7.23版本震撼上线
2019/12/01 DOTA
python实现无证书加密解密实例
2014/10/27 Python
Python中的time模块与datetime模块用法总结
2016/06/30 Python
python 实现读取一个excel多个sheet表并合并的方法
2019/02/12 Python
在Python中过滤Windows文件名中的非法字符方法
2019/06/10 Python
docker django无法访问redis容器的解决方法
2019/08/21 Python
python中rb含义理解
2020/06/18 Python
佛罗里达州印第安河新鲜水果:Hale Groves
2017/02/20 全球购物
SEPHORA丝芙兰捷克官网:购买香水、化妆品和护肤品
2018/11/26 全球购物
美国购买体育赛事门票网站:TicketCity
2019/03/06 全球购物
车间统计员岗位职责
2014/01/05 职场文书
战友聚会邀请函
2014/01/18 职场文书
女儿十岁生日答谢词
2014/01/27 职场文书
英语系本科生求职信
2014/07/15 职场文书
期中考试后的感想
2015/08/07 职场文书
财务年终工作总结大全
2019/06/20 职场文书