我在类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)的结果时,会出现加载错误。
所以我对那里发生的事情有些困惑,如果有人有想法的话,那将是很大的帮助!
谢谢
答案 0 :(得分:0)
这可能是因为您必须重新创建data_iterator
。 data_iterator
完成后将被检验,并且 next ()调用将引发错误。