MXNet预测模型缓存时无法正常工作

时间:2019-11-28 14:40:54

标签: python numpy mxnet functools

我在类MyModel中有一个MXNet MultilayerPerceptron。 我首先从文件加载训练后的权重。 我正在使用MLP进行预测,如下所示:

class MyModel:
    ...
    def predict(self, X):
         data_iterator = mx.io.NDArrayIter(data=X, 
         batch_size=self.model.data_shapes[0].shape[0], shuffle=False)
         predictions_npa = self.model.predict(data_iterator ).asnumpy()

其中X是一个numpy数组(1,777)

现在,我第一次执行MyModel.predict时,效果很好。 然后,将MyModel实例存储在functools.LRUCache中,并尝试使用完全相同的输入第二次执行预测。

每次执行此操作时,我的python进程都会停止执行任何操作,没有日志,没有任何操作,也不会退出。我只知道,当我尝试在PyCharm调试器中检查self.model.predict(data_iterator)的结果时,会出现加载错误。

所以我对那里发生的事情有些困惑,如果有人有想法的话,那将是很大的帮助!

谢谢

1 个答案:

答案 0 :(得分:0)

这可能是因为您必须重新创建data_iteratordata_iterator完成后将被检验,并且 next ()调用将引发错误。