- 版本、环境信息:
1)PaddlePaddle版本:2.0-rc
2)CPU:Intel i5-8300H
4)系统环境:Windows, python 3.7
def load_model(self, model_dir, use_gpu=False):
model = os.path.join(model_dir, '__model__')
params = os.path.join(model_dir, '__params__')
config = Config(model, params)
# 设置参数
if use_gpu:
config.enable_use_gpu(100, 0)
else:
config.disable_gpu()
config.enable_mkldnn()
config.disable_glog_info()
config.switch_ir_optim(True)
config.enable_memory_optim()
config.switch_use_feed_fetch_ops(False)
config.switch_specify_input_names(True)
# 通过参数加载模型预测器
predictor = create_predictor(config)
# 获取模型的输入输出
input_names = predictor.get_input_names()
output_names = predictor.get_output_names()
input_handle = predictor.get_input_handle(input_names[0])
output_handle = predictor.get_output_handle(output_names[0])
使用上述代码加载完模型之后
在预测阶段调用如下函数
def predict(self, imgs):
input_datas = self.preprocess(imgs)
self.input_handle.copy_from_cpu(input_datas)
self.predictor.run()
result = self.output_handle.copy_to_cpu()
return result
将会在predictor.run报错
其中imgs为13128*128的numpy数组
但奇怪的是 有的时候能够正确运行(极少数)
10条答案
按热度按时间s3fp2yjn1#
您好,我们已经收到了您的问题,会安排技术人员尽快解答您的问题,请耐心等待。请您再次检查是否提供了清晰的问题描述、复现代码、环境&版本、报错信息等。同时,您也可以通过查看官网API文档、常见问题、历史Issue、AI社区来寻求解答。祝您生活愉快~
Hi! We've received your issue and please be patient to get responded. We will arrange technicians to answer your questions as soon as possible. Please make sure that you have posted enough message to demo your request. You may also check out the API,FAQ,Github Issue and AI community to get the answer.Have a nice day!
qzwqbdag2#
输入数据的shape对吗,是不是shape对应不上导致出错了。
v2g6jxz63#
我输出过shape没什么问题 奇怪的是如果我在预测之前直接print 输入的数据 就能够正常运行
是因为之前的数据内存被释放掉了吗?
偶然间又成功一次. 之后又不行了
7ajki6be4#
代码里面没有设置输入的shape,你把inpute_handle的shape设置一下试试。参考https://paddle-inference.readthedocs.io/en/latest/quick_start/python_demo.html
20jt8wwn5#
同时尝试一下,改成下面代码设置输入。可能是numpy内部数据不连续导致输入数据错误。
dfddblmv6#
这个偶然成功的输入大小
然后失败的时候也是这个大小
我尝试使用copy 好像没有什么变化
alen0pnh7#
我将代码改成了
感觉成功率高了不少,但是有的时候还是会出现上面这个错误
同时连续运行的时候还会出现段错误,是内存不过吗?
rfbsl7qr8#
必须指定输入shape的 batch_size,不可以是-1。
同时考虑numpy内存不连续,可以不用copy,用这个api:https://numpy.org/doc/stable/reference/generated/numpy.ascontiguousarray.html
x759pob29#
将代码改成了这样发现成功率更低了。。
这里使用的predictor模型是Paddle官方模型库中的Metric Learning模型的resnet50
qvk1mo1f10#
可能和cpu下使用模型有关? 每次重新打开IDE都成功几率更大