MXNet gluon如何从文件夹读入图像

分类任务中需要将图像从文件夹中读入,并以迭代器的形式进行训练。gluon 的api 提供了一个方便的函数gluon.data.vision.ImageFolderDataset(),只需要将图像文件根据分类进行预处理,就可以方便的使用这个函数来读入数据。

1.图像预处理

首先这个函数要求不同分类的图像需要按照下面的格式来组织:

./train_image
|--class1|--001.png|--002.png|--003.png|--xxx.png
|--class2
|--class3
|--classxxx

其中train_image是保存训练图像的目录;
这里可以参考如何将json格式的标签数据进行预处理

2. 生成图像image-label对儿

mxnet.gluon.data.vision.datasets.ImageFolderDataset(root, flag=1, transform=None)
这一函数中root 为图像存储的根目录,它会根据子文件夹为所有图像生成对应的标签。
- 其中flag为读入图像的属性,1为rgb图,0为灰度图。

transform为对图像进行变化的函数,但一般都在dataloader中进行。
得到的结果有两个属性:
- syset 会输出所有类并用整数表示
- items 则表示读入的所有图像,并按照元组的形式(filename, label)组成list

3.读入数据生成迭代器

上面的工作主要生成了一个图片和对应标签的检索表,随后需要利用生成dataiter才能在实际训练中使用,主要使用mxnet.gluon.data.DataLoader函数.
其参数如下:
mxnet.gluon.data.DataLoader(dataset, batch_size=None, shuffle=False, sampler=None, last_batch=None, batch_sampler=None, batchify_fn=None, num_workers=0, pin_memory=False)
- dataset: 上一步从文件夹load进来的检索;
- batch_size: 每次输出批量的大小
- shuffle:是否要打乱顺序

4.实例

from mxnet.gluon import data as gdata
#读取数据文件
train_set = gdata.vision.ImageFolderDataset('./train_imgs/',flag=1)
valid_set = gdata.vision.ImageFolderDataset('./valid_imgs/',flag=1)
#check data classes
print(train_set)    #这里检索表的长度与数据集的大小相同
print(train_set.synsets)  #also has items attributes
print(valid_set)
print(valid_set.synsets)  #also has items attributes#生成迭代器
#data into iter and realized argumentation
batch_size = 32train_iter = gdata.DataLoader(train_set, batch_size, shuffle=True, last_batch='keep')  #生成训练集迭代
valid_iter = gdata.DataLoader(valid_set, batch_size, shuffle=True, last_batch='keep')  #生成验证集迭代
#这里迭代器的大小为数据集大小/批量大小,即将整个数据集分为了多少个batch来计算#验证是否在一次迭代中输出batch_size 个的数据
for imgs, labels in train_iter:print(labels)print(imgs.shape)break

MXNet.gluon——图像I/O相关推荐

  1. mxnet导入图像数据

    图像的标签在一个json文件中. %matplotlib inline import json import gluonbook as gb import mxnet as mx from mxnet ...

  2. MXNet/Gluon 中 Triplet Loss 算法

    Triplet Loss,即三元组损失,用于训练差异性较小的数据集,数据集中标签较多,标签的样本较少.输入数据包括锚(Anchor)示例⚓️.正(Positive)示例和负(Negative)示例,通 ...

  3. MXNET gluon自定义损失函数

    在学习李沐老师的目标检测篇章 目标检测中由于负类较多,正类较少,我们可以适当的减少对负类的惩罚 因此根据视频教程我们来重新写一个损失函数 通常mxnet的损失函数需要继承Loss类 from mxne ...

  4. mxnet.gluon 加载预训练

    import mxnet as mx from mxnet.gluon import nn from mxnet import gluon,nd,autograd,init from mxnet.gl ...

  5. No module named 'mxnet.gluon'

    . No module named 'mxnet.gluon' 原因:mxnet卸载就报错 解决,pip install mxnet-cu80 如果报错库找不到,再安装: pip install mx ...

  6. 在python中超简单安装mxnet_在Docker容器中搭建MXNet/Gluon开发环境

    在这篇文章中没有直接使用MXNet官方提供的docker image,而是从一个干净的nvidia/cuda镜像开始,一步一步部署mxnet需要的相关软件环境,这样做是为了更加细致的了解mxnet的运 ...

  7. 深度学习1:神经网络基础前馈神经网络Feedforward Neural Network(基于Python MXNet.Gluon框架)

    目录 神经网络背景 常用的深度学习框架 机器学习的三个基本要素 模型 学习准则 损失函数 0-1损失函数 0-1 Loss Function 平方损失函数 Quadratic Loss Functio ...

  8. @property python知乎_使用Mxnet进行图像深度学习训练工具 InsightFace - 使用篇, 如何一键刷分LFW 99.80%, MegaFace 98%....

    开头先把论文和开源项目地址放一下: Additive Angular Margin Loss for Deep Face Recognition​arxiv.org deepinsight/insig ...

  9. 深度学习4:网络优化Network Optimization(基于Python MXNet.Gluon框架)

    网络优化 应用中的两类难点问题 网络优化 优化算法 小批量梯度下降 批量大小 KKK 的选择 学习率 α\alphaα 的调整 学习率衰减 学习率预热 周期性学习率调整 AdaGrad 算法 RMSp ...

最新文章

  1. Dubbo源码解析之服务路由策略
  2. 成功解决SyntaxError: (unicode error) ‘unicodeescape‘ codec can‘t decode bytes in position 0-1: malformed
  3. Oracle发布开源的轻量级 Java 微服务框架 Helidon 1
  4. 【数据库系统】文件处理系统的弊端
  5. Web API-DOM-滚动事件、加载事件和元素大小和位置
  6. 复杂车间调度问题三维析取图建模系列预告
  7. GIT与SVN世纪大战
  8. mysql数据库的单引号用法_[数据库]mysql单引号和双引号的用法
  9. 《这样思考,人生就不一样》/《思考的整理学》 博客思听 2010年1月
  10. 如何做出 胜过 万龙洲海鲜的 双味腊肠芋头煲
  11. DDOS攻击/防御介绍
  12. java经典递归 背包问题
  13. MySQL5.7.20安装
  14. MyBatis关联嵌套映射(association、collection、discriminator)
  15. 最新Navicat Premium 16 激活中文版 适用于win和mac版
  16. 将同一文件夹下的图片转化为视频
  17. matlab极性电容叫什么,什么是无极性电容
  18. pwnable.kr---blackjack
  19. php实现抠图,如何使用php代码实现印章的抠图(代码)
  20. 脑注意力机制启发的群体智能协同避障方法

热门文章

  1. 笨方法“学习python笔记之文件操作
  2. DND(darmstadt noise dataset)数据集的坑
  3. Conv2d中的groups参数(分组卷积)怎么理解? 【分组卷积可以减少参数量、且不容易过拟合(类似正则化)】
  4. SAGAN(G-lab介绍)
  5. 1.Hadoop的组成 HDFS YARN
  6. [流体力学] 推导柱坐标系下的连续性方程
  7. YOLO,VOC数据集标注格式解析
  8. phpcmsV9 邮箱配置(含图文教程) - 案例篇
  9. python的认识_Python学习之认识python
  10. python中if语句使用_Python学习笔记之if语句的使用示例