我目前正在使用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
目前,支持渐变,函数和控制流操作(“if”和“while”)在Python以外的语言中不可用。当C API提供必要的支持时,这将更新。
是否有任何解决方法在不暴露python代码或模型的情况下部署TF应用程序?提前谢谢。
答案 0 :(得分:0)
您仍然可以将Python与预先训练的模型一起使用,而不会首先暴露构建它所需的所有代码。作为一个例子,看一下Inception再训练代码,它加载一个预训练的GraphDef,然后重新训练一个新的顶层: https://github.com/tensorflow/tensorflow/blob/master/tensorflow/examples/image_retraining/retrain.py