在Flask中导入多个自定义tensor2tensor问题

时间:2018-09-13 13:45:36

标签: tensorflow flask tensorflow-serving flask-restplus tensor2tensor

在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)的东西,好像一旦加载了自定义问题,第二个用户目录注册就不会被获取。

有什么想法吗?预先感谢!

1 个答案:

答案 0 :(得分:0)

我发现使用usr_dir.import_usr_dir(usr_dir_string)并不是最好的方法,因为它确实确实像Matthias所建议的那样重新导入了相同的第一个usr_dir。我通过将相应的usr_dirs添加到我的根文件夹中并将其作为模块导入来解决了此问题。

此后,我完全删除了usr_dir.import_usr_dir(usr_dir_string)行,并通过problem = registry.problem(problem)注册了问题,对于两个问题都很好!