【问题标题】:How to predict the labels for the test set when using a custom Iterator in MXnet?在 MXnet 中使用自定义迭代器时如何预测测试集的标签?
【发布时间】:2017-04-28 16:31:39
【问题描述】:

我有一个大数据集(大约 20GB 用于训练,2GB 用于测试),我想使用 MXnet 和 R。由于内存不足,我搜索了一个迭代器来通过自定义迭代器加载训练和测试集,然后我找到了this 解决方案。

现在,我可以使用此页面上的代码训练模型,但问题是,如果我使用保存迭代器读取测试集,如下所示:

test.iter <- CustomCSVIter$new(iter = NULL, data.csv = "test.csv", data.shape = 480, batch.size = batch.size)

那么,预测命令不起作用,page中没有预测模板;

preds <- predict(model, test.iter)

所以,我的具体问题是,如果我使用页面上的代码构建模型,我如何阅读我的测试集并预测其标签以用于评估过程?我的测试集和训练集在this format

感谢您的帮助

【问题讨论】:

    标签: r image-processing deep-learning mxnet


    【解决方案1】:

    它实际上完全按照您的说明工作。您只需使用模型和迭代器调用预测:

    preds = predict(model, test.iter)
    

    这里唯一的技巧是预测按列显示。我的意思是,如果你使用整个sample you are referring to,请执行它并添加以下行:

    test.iter <- CustomCSVIter$new(iter = NULL, data.csv = "mnist_train.csv", data.shape = 28, batch.size = batch.size)
    preds = predict(model, test.iter)
    
    preds[,1] # index of the sample to see in the column position
    

    您收到:

     [1] 5.882561e-11 2.826923e-11 7.873914e-11 2.760162e-04 1.221306e-12 9.997239e-01 4.567645e-11 3.177564e-08 1.763889e-07 3.578671e-09
    

    这显示了训练集第一个元素的 softmax 输出。如果您尝试通过写preds 来打印所有内容,那么由于 RStudio 打印限制为 1000,您将只能看到空值 - 实际数据将没有机会出现。

    请注意,我重复使用训练数据进行预测。我这样做是因为我不想调整迭代器的代码,它需要能够使用前面有和没有标签的数据(训练和测试集)。在实际场景中,您需要调整迭代器,使其在有标签和没有标签的情况下都能正常工作。

    【讨论】:

      猜你喜欢
      • 2020-03-09
      • 2017-12-20
      • 1970-01-01
      • 2011-12-12
      • 1970-01-01
      • 2010-12-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多