0%

Gluon IO 使用方法

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