Gluon IO 使用方法中介绍了如何使用 MXNet 的 IO 接口。Gluon 是 MXNet 提供的一个新的封装接口,非常容易在静态图和动态图之间转换,动态图在调试的时候非常有用,静态图在训练的时候速度更占优势。目前比较推荐使用 Gluon 接口。而且,Gluon 封装了一个使用更加方便的 IO 接口,这里记录下 Gluon 的 IO 使用方法。
定义迭代器
首先要定义一个迭代器,每次调用的时候返回一个 data,label 的 pair 对。
对于数据的预处理,例如 data augment 等都可以在 __getitem__
中进行。
1 2 3 4 5 6 7 8 9 10 11
| class DataIter(gluon.data.Dataset):
def __init__(self, data, label): self.data = data self.label = label
def __getitem__(self, idx): return sele.data[idx], self.label[idx]
def __len__(self): return len(self.data)
|
Gluon 封装
使用 Gluon 的 DataLoader 封装。
1 2 3 4 5
| data_iter = DataIter(data, label) data_iter = gluon.data.DataLoader(data_iter, batch_size, last_batch="rollover", shuffle=True)
for batch in data_ter: data, label = batch
|