一, Gluon 数据加载
图片数据 (含标签) 加载函数: gluon.data.vision.ImageFolderDataset
给出 ImageFolderDataset 类的描述,
- Init signature: mxnet.gluon.data.vision.datasets.ImageFolderDataset(root, flag=1, transform=None)
- Source:
- class ImageFolderDataset(dataset.Dataset):
- """A dataset for loading image files stored in a folder structure like::
- root/car/0001.jpg
- root/car/xxxa.jpg
- root/car/yyyb.jpg
- root/bus/123.jpg
- root/bus/023.jpg
- root/bus/wwww.jpg
- Parameters
- ----------
- root : str
Path to root directory.
- flag : {0, 1}, default 1 # 控制彩色 or 灰度
- If 0, always convert loaded images to greyscale (1 channel).
- If 1, always convert loaded images to colored (3 channels).
- transform : callable, default None
A function that takes data and label and transforms them:
- ::
- transform = lambda data, label: (data.astype(np.float32)/255, label)
- Attributes
- ----------
- synsets : list # 查看类别, 实际就是文件名
- List of class names. `synsets[i]` is the name for the integer label `i`
- items : list of tuples # 生成的数据
List of all images in (filename, label) pairs.
"""
实例:
- train_imgs = gluon.data.vision.ImageFolderDataset(
- data_dir+'/hotdog/train',
- transform=lambda X, y: transform(X, y, train_augs))
- test_imgs = gluon.data.vision.ImageFolderDataset(
- data_dir+'/hotdog/test',
- transform=lambda X, y: transform(X, y, test_augs))
- print(train_imgs)
- print(train_imgs.synsets)
- data = gluon.data.DataLoader(train_imgs, 32, shuffle=True)
- <mxnet.gluon.data.vision.datasets.ImageFolderDataset object at 0x7fbed5641c18>
- ['hotdog', 'not-hotdog']
batch 迭代器: gluon.data.DataLoader
具有特殊方法, def __iter__(self), 其实例可以被迭代, 也就是每次返回一个 batch 的数据, 在第一维度上切割.
首个定位参数文档如下:
- dataset : Dataset
- Source dataset. Note that numpy and mxnet arrays can be directly used
as a Dataset.
最后生成的 X_batch 送入 net(X_batch)向前传播, y_batch 送入 loss(output,y_batch)计算 loss 后反向传播.
二, MXNet 数据加载
- https://blog.csdn.net/qq_36165459/article/details/78394322
- https://blog.csdn.net/u012759136/article/details/50208733#二从原生数据生成lst文件
来源: http://www.bubuko.com/infodetail-2619018.html