在flask_restplus API中,我试图从两个在一台服务器上提供服务的tensor2tensor模型进行推断。这两个模型都是自定义的,所以我将t2t_usr_dir提供给tensor2tensor的服务函数,以便找到自定义问题。
在推断一个自定义问题时,一切都很好,结果如预期。但是,当我想推断第二个模型时,程序失败了
def get_registered_problem(usr_dir_string, problem):
usr_dir.import_usr_dir(usr_dir_string)
print("Importing worked?")
problem = registry.problem(problem)
print("Problem naam:", problem)
return problem
与LookupError: my_custom_problem_2 not in the set of supported problems
。
当我切换回第一个模型(my_custom_problem_1)时,一切都很好,日志告诉我一个对象存在。我仔细检查了所有用户和数据目录是否正确。感觉像烧瓶的东西或problem = registry.problem(problem)
的东西,好像一旦加载自定义问题,第二个用户目录注册只是没有被拿起。
有任何想法吗?提前致谢!
我发现使用usr_dir.import_usr_dir(usr_dir_string)
并不是最好的方法,因为它似乎确实重新导入了相同的第一个usr_dir,正如马蒂亚斯建议的那样。我通过将相应的usr_dirs添加到我的根文件夹中并将它们作为模块导入来解决了这个问题。
在那之后我完全删除了usr_dir.import_usr_dir(usr_dir_string)
线并继续通过problem = registry.problem(problem)
注册问题,这两个问题都很好!