将多个模型部署到同一个服务时,会出现stack错误. 原因是program为全局.
改成这样,可以解决.
solved by myself. for those who need it:
use a new scope for every model
scope = fluid.Scope() with fluid.scope_guard(scope): place = fluid.CPUPlace() exe = fluid.Executor(place) [inference_program, _, fetch_targets] = ( fluid.io.load_inference_model(dirname=model_path[0], executor=exe, model_filename=model_path[1], params_filename=params_path[1]))
and for prediction:
with fluid.scope_guard(scope): results = exe.run(inference_program, feed=inputs, fetch_list=fetch_targets)
参考链接: https://github.com/PaddlePaddle/models/issues/1164