网络上的机器学习,PHP与python的连接



我目前正在处理一个带有地理数据的 ML 项目......

在我的网络中,我让机器学习算法的模型参数给用户,然后我将它们发送到 Apache 服务器,PHP 在那里获取参数......在js中,我使用Ajax发出POST请求。

我的 ML 算法是用 Python 制作的,现在正在使用库argparse读取 PHP 发送的参数(验证后)作为命令通过函数exec()

我对此有 2 个问题:

  1. 如果 ML 模型需要时间来计算结果,则exec函数不会等待它们并在一段时间后返回null,但如果速度很快,一切都没问题。我已经在我的 PHP 文件中set_limit_time(0);了函数。

  2. 在我的本地机器中,计算结果并不像在服务器上那样花费太多时间,但是服务器有更好的硬件,所以我不知道那里发生了什么。

<小时 />
  • 菲律宾比索 7.0.15
  • 蟒蛇 2.7
  • 服务器 Apache/2.4.18 (Ubuntu 16.04.1 LTS)

另外,有没有更好的方法可以做到这一点?

我想提出另一种方法。

每当您从命令行调用算法时,您都有一个引导时间:导入库(例如 numpy)、加载数据集等。然后执行计算,返回响应并清除内存。因此,下次您需要另一个结果时,您必须再次经历所有过程。

我建议将该算法嵌入到一个小型的 Flask 应用程序中(您已经了解 Python 并且知道如何将 PHP 用于 Web,这应该不会那么难。

由于您的python Web服务器将已经加载了所有库和数据集,因此回答您的问题会快得多。

你可以从PHP访问它,用curl做HTTP请求(它有超时!

我认为这将更容易和可扩展。

就我的两分钱!

我最终打开了一个 Python 套接字并通过它连接 PHP,现在这个过程仍然比我的本地机器慢,但超时不再是问题。

最新更新