【问题标题】:Deploying Tensorflow app on the customer's infra在客户的基础设施上部署 TensorFlow 应用程序
【发布时间】:2016-12-13 10:20:02
【问题描述】:

我目前正在使用 Tensorflow 开发一个预测模型,并且我的模型对客户来说效果很好,所以我正在努力将其作为一个真正的产品。

随着时间的推移,我的模型需要使用客户的输入进行重新训练,并且应该部署在客户的基础架构上。 (不是 SaaS 或云。)此外,我想保护我的代码和模型。

根据我对 Tensorflow 的理解,经过训练的模型可以导出为 protobuf,冻结并保留预测所需的节点。 freeze_graph.py at Tensorflow repo, 我试过了,我使用 Golang + libtensorflow.so 运行时成功运行了我的预测模型。 (或者,我可以使用 Tensorflow Serving 和 C++)

如果我可以在我们公司的基础设施上训练我的模型,我可以说“好吧,让我们喝点啤酒”。但是,我的模型必须在客户的基础设施上进行训练,并且没有 python 代码,我似乎无法训练我的模型。

https://www.tensorflow.org/versions/r0.12/how_tos/language_bindings/index.html

目前,Python 以外的其他语言不支持渐变、函数和控制流操作(“if”和“while”)。这将在 C API 提供必要支持时更新。

在不暴露 python 代码或模型的情况下部署 TF 应用程序有什么解决方法吗?提前致谢。

【问题讨论】:

  • 混淆还不够吗?

标签: python c++ deployment tensorflow deep-learning


【解决方案1】:

您仍然可以将 Python 与预训练模型一起使用,而无需首先公开构建模型所需的所有代码。作为一个例子,看一下 Inception 再训练代码,它加载一个预训练的 GraphDef,然后再训练一个新的顶层: https://github.com/tensorflow/tensorflow/blob/master/tensorflow/examples/image_retraining/retrain.py

【讨论】:

  • 不,它不能隐藏我的模型(GraphDef protobuf)。即使我加密了模型的 protobuf,我也需要在 Python 代码上解密才能对其进行训练。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-12-08
  • 2021-04-19
  • 1970-01-01
  • 2011-11-24
  • 2015-05-26
  • 1970-01-01
相关资源
最近更新 更多