我有一个使用 Java 作为基本代码的 Web 应用程序项目。
然后需要使用一个经过训练的Python模型来做一些预测。
我能够加载完整的 Python 脚本并在需要时运行它,但问题是加载时间。
每当调用 Python 脚本时,在进行预测之前都需要重新加载整个脚本,包括模型。
比如说,重新运行时整个脚本将花费 30 秒
因此,当我通过网络应用程序进行 4 次预测时,将占用 4 x 30 秒 = 120 秒。或者如果在 1 次运行中总共进行 4 次预测,最快将是 +- 40 秒
更不用说当页面重新加载时,它还需要重新开始
其中等待时间太长,无法等待。
所以,我在想有没有办法让我第一次只加载一次模型,然后剩下的就只是调用预测函数了?
也许就像在后台缓存 Python 模型然后在下次运行中使用该模型(变量)?
最佳答案
要只初始化一次加载模型,需要在java中使用单例设计模式。一旦模型类初始化,实例就被创建。您可以在需要时使用此实例。
public class LoadSingletonModel {
private static LoadSingletonModel instance;
private LoadSingletonModel(){}
public static synchronized LoadSingletonModel getInstance(){
if(instance == null){
instance = new LoadSingletonModel();
}
return instance;
}
}
这将解决您的问题。
关于java - 有什么办法可以在后台运行Python模型吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62035258/