我有一个使用Java作为基本代码的网络应用程序项目。然后需要使用经过训练的Python模型之一进行预测。我能够加载Python的完整脚本并在需要时运行它,但是问题是加载时间。每当调用Python脚本时,都需要在进行预测之前重新加载包括模型在内的整个脚本。说,整个脚本重新运行时将花费30s因此,当我通过网络应用进行4次预测时,将+-占用4 x 30s = 120s。或最快的速度(如果在1次运行中总共进行4次预测)将为+-40s更不用说页面重新加载时,它将需要重新开始其中等待时间太长,无法等待。
所以,我在想我有什么方法可以在第一次加载模型时只加载一次,然后剩下的只是调用预测函数?也许就像在后台缓存Python模型,然后在下一次运行中使用模型(变量)?
要只初始化一次加载模型,您需要在Java中使用单一设计模式。模型类初始化后,便创建了实例。您可以在需要时使用此实例。
public class LoadSingletonModel {
private static LoadSingletonModel instance;
private LoadSingletonModel(){}
public static synchronized LoadSingletonModel getInstance(){
if(instance == null){
instance = new LoadSingletonModel();
}
return instance;
}
}
这将解决您的问题。