python - 缓存模型时,MXNet 预测不起作用
问题描述
我在 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) 的结果时,我得到一个加载错误。
所以我对那里发生的事情有点困惑,如果有人有想法,那可能会有很大的帮助!
谢谢
解决方案
这可能是因为您必须重新创建data_iterator
. data_iterator
一旦完成并且 . next () 调用将引发错误。
推荐阅读
- javascript - 如何在js中读取txt文件并在不同的div中打印其行
- java - post 和 pre increment 的区别,运行的代码总是一样的
- python - 在 Jupyter 中导入 PyCaret 时找不到模块
- c# - Asp.Net Core Connected Service SOAP 方法始终为空
- database - laravel 中未设置动态数据库连接
- reactjs - Prettier 不尊重自闭 jsx 标签
- django - 我的应用没有将 AUTH_USER_MODEL 识别为默认用户模型
- python - 如何在情节中制造传奇?
- typescript - TypeError:navigation.navigate 不是函数
- vue.js - 使用 Nuxt Content 在 Markdown 中使用 Vuetify 组件时出错