MXNet.gluon——图像I/O
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相关推荐
- mxnet导入图像数据
图像的标签在一个json文件中. %matplotlib inline import json import gluonbook as gb import mxnet as mx from mxnet ...
- MXNet/Gluon 中 Triplet Loss 算法
Triplet Loss,即三元组损失,用于训练差异性较小的数据集,数据集中标签较多,标签的样本较少.输入数据包括锚(Anchor)示例⚓️.正(Positive)示例和负(Negative)示例,通 ...
- MXNET gluon自定义损失函数
在学习李沐老师的目标检测篇章 目标检测中由于负类较多,正类较少,我们可以适当的减少对负类的惩罚 因此根据视频教程我们来重新写一个损失函数 通常mxnet的损失函数需要继承Loss类 from mxne ...
- mxnet.gluon 加载预训练
import mxnet as mx from mxnet.gluon import nn from mxnet import gluon,nd,autograd,init from mxnet.gl ...
- No module named 'mxnet.gluon'
. No module named 'mxnet.gluon' 原因:mxnet卸载就报错 解决,pip install mxnet-cu80 如果报错库找不到,再安装: pip install mx ...
- 在python中超简单安装mxnet_在Docker容器中搭建MXNet/Gluon开发环境
在这篇文章中没有直接使用MXNet官方提供的docker image,而是从一个干净的nvidia/cuda镜像开始,一步一步部署mxnet需要的相关软件环境,这样做是为了更加细致的了解mxnet的运 ...
- 深度学习1:神经网络基础前馈神经网络Feedforward Neural Network(基于Python MXNet.Gluon框架)
目录 神经网络背景 常用的深度学习框架 机器学习的三个基本要素 模型 学习准则 损失函数 0-1损失函数 0-1 Loss Function 平方损失函数 Quadratic Loss Functio ...
- @property python知乎_使用Mxnet进行图像深度学习训练工具 InsightFace - 使用篇, 如何一键刷分LFW 99.80%, MegaFace 98%....
开头先把论文和开源项目地址放一下: Additive Angular Margin Loss for Deep Face Recognitionarxiv.org deepinsight/insig ...
- 深度学习4:网络优化Network Optimization(基于Python MXNet.Gluon框架)
网络优化 应用中的两类难点问题 网络优化 优化算法 小批量梯度下降 批量大小 KKK 的选择 学习率 α\alphaα 的调整 学习率衰减 学习率预热 周期性学习率调整 AdaGrad 算法 RMSp ...
最新文章
- Dubbo源码解析之服务路由策略
- 成功解决SyntaxError: (unicode error) ‘unicodeescape‘ codec can‘t decode bytes in position 0-1: malformed
- Oracle发布开源的轻量级 Java 微服务框架 Helidon 1
- 【数据库系统】文件处理系统的弊端
- Web API-DOM-滚动事件、加载事件和元素大小和位置
- 复杂车间调度问题三维析取图建模系列预告
- GIT与SVN世纪大战
- mysql数据库的单引号用法_[数据库]mysql单引号和双引号的用法
- 《这样思考,人生就不一样》/《思考的整理学》 博客思听 2010年1月
- 如何做出 胜过 万龙洲海鲜的 双味腊肠芋头煲
- DDOS攻击/防御介绍
- java经典递归 背包问题
- MySQL5.7.20安装
- MyBatis关联嵌套映射(association、collection、discriminator)
- 最新Navicat Premium 16 激活中文版 适用于win和mac版
- 将同一文件夹下的图片转化为视频
- matlab极性电容叫什么,什么是无极性电容
- pwnable.kr---blackjack
- php实现抠图,如何使用php代码实现印章的抠图(代码)
- 脑注意力机制启发的群体智能协同避障方法
热门文章
- 笨方法“学习python笔记之文件操作
- DND(darmstadt noise dataset)数据集的坑
- Conv2d中的groups参数(分组卷积)怎么理解? 【分组卷积可以减少参数量、且不容易过拟合(类似正则化)】
- SAGAN(G-lab介绍)
- 1.Hadoop的组成 HDFS YARN
- [流体力学] 推导柱坐标系下的连续性方程
- YOLO,VOC数据集标注格式解析
- phpcmsV9 邮箱配置(含图文教程) - 案例篇
- python的认识_Python学习之认识python
- python中if语句使用_Python学习笔记之if语句的使用示例