当MXNet中使用高级API时,如何将额外数据输入到网络中



我正在研究MXNet框架,每次迭代都需要向网络中输入一个矩阵。矩阵存储在外部存储器中,它不是训练数据,并且在每次迭代结束时由网络的输出更新。在迭代过程中,必须将矩阵输入到网络中。

如果我使用高级API,即

model = mx.mod.Module(context=ctx, symbol=sym) ... ... model.fit(train_data_iter, begin_epoch=begin_epoch, end_epoch=end_epoch, ......)

这能实现吗?

model.fit()没有提供您想要的功能。然而,您想要实现的是非常容易在Apache MXNet的Gloon API中实现。使用Gloonneneneba API,您可以为训练循环编写7行代码,而不是使用单个model.fit()。这是一个典型的训练循环代码:

for epoch in range(10):
for data, label in train_data:
# forward + backward
with autograd.record():
output = net(data)
loss = softmax_cross_entropy(output, label)
loss.backward()
trainer.step(batch_size)  # update parameters

因此,如果你想将网络的输出反馈到输入中,你可以很容易地实现这一点。为了开始学习Gloon,我推荐60分钟的Gloon速成课程。要成为Gloon的专家,我推荐《深度学习-直接兴奋剂》一书以及MXNet主网站上的一套全面教程:http://mxnet.apache.org/tutorials/index.html

最新更新