一、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‘,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#%E4%BA%8C%E4%BB%8E%E5%8E%9F%E7%94%9F%E6%95%B0%E6%8D%AE%E7%94%9F%E6%88%90lst%E6%96%87%E4%BB%B6