【问题标题】:Compiling model as executable for faster inference?将模型编译为可执行文件以加快推理速度?
【发布时间】:2017-09-13 00:25:34
【问题描述】:

有没有办法用我训练的模型编译整个 Python 脚本以加快推理速度?似乎加载 Python 解释器,所有的 Tensorflow、numpy 等都需要相当长的时间。当这必须发生在响应非平凡请求频率的服务器上时,它似乎很慢。

编辑

我知道我可以使用 Tensorflow 服务,但由于与之相关的成本而不想使用。

【问题讨论】:

  • 为什么不只监听信号并使用已加载模型的守护进程来加载请求,然后生成格式化响应?
  • @AlexanderHuszagh 我对此很满意。你有关于我如何设置它的信息吗? Python新手在这里...
  • 老实说,我可能会使用 Twisted 作为服务器守护程序来执行此操作。一个简单的、专门的例子是。您应该能够专门加载 JSON 数据,然后使用已加载 Tensorflow 的代码来处理它,然后处理它以格式化响应:saltycrane.com/blog/2010/08/twisted-web-post-example-json
  • 请注意命令是“twistd”,而不是“twisted”我相信它的最新版本。我可能完全在扼杀命名。
  • 查找 XLA AOT 编译,它使用 C API 将您的 TF 模型转换为二进制

标签: python machine-learning tensorflow inference


【解决方案1】:

如何设置服务器?如果你使用 django、flask 或 tornado 等 python 框架搭建服务器,你只需要预加载你的模型并将其保存为全局变量,然后使用这个全局变量进行预测。

如果您使用的是其他服务器。你也可以把你用来预测的整个python脚本做成本地服务器,在python服务器和web服务器之间转换请求或响应。​​

【讨论】:

    【解决方案2】:

    您只想为 tensorflow 模型提供服务,还是在 tensorflow 之外做任何工作?

    对于张量流模型,您可以使用TensorFlow Serving。如果您对gRPC 感到满意,这将非常适合您。

    【讨论】:

      猜你喜欢
      • 2010-11-24
      • 1970-01-01
      • 1970-01-01
      • 2020-05-06
      • 1970-01-01
      • 2016-09-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多