可以在后台运行Python模型吗?

问题描述 投票:0回答:1

我有一个使用Java作为基本代码的网络应用程序项目。然后需要使用经过训练的Python模型之一进行预测。我能够加载Python的完整脚本并在需要时运行它,但是问题是加载时间。每当调用Python脚本时,都需要在进行预测之前重新加载包括模型在内的整个脚本。说,整个脚本重新运行时将花费30s因此,当我通过网络应用进行4次预测时,将+-占用4 x 30s = 120s。或最快的速度(如果在1次运行中总共进行4次预测)将为+-40s更不用说页面重新加载时,它将需要重新开始其中等待时间太长,无法等待。

所以,我在想我有什么方法可以在第一次加载模型时只加载一次,然后剩下的只是调用预测函数?也许就像在后台缓存Python模型,然后在下一次运行中使用模型(变量)?

java python spring jython python-multithreading
1个回答
0
投票

要只初始化一次加载模型,您需要在Java中使用单一设计模式。模型类初始化后,便创建了实例。您可以在需要时使用此实例。

public class LoadSingletonModel {

    private static LoadSingletonModel instance;

    private LoadSingletonModel(){}

    public static synchronized LoadSingletonModel getInstance(){
        if(instance == null){
            instance = new LoadSingletonModel();
        }
        return instance;
    }

}

这将解决您的问题。

© www.soinside.com 2019 - 2024. All rights reserved.