我有一个简单的Tensorflow三层MLP模型,它接受一个包含10个数值的向量来预测一个单一的数值输出。
我的Web应用程序使用Flask框架,客户端可以每分钟输入一个包含10个数值的向量,从我的服务器上获取预测结果,我的服务器上运行着训练好的Tensorflow模型。
我的问题是:对于我的简单应用,是否有必要使用带有gRPC的Tensorflow服务,还是可以找到一种方法,通过Flask的REST接口将10个数值的输入传递给我的Tensorflow服务器?后一种方法对图重初始化的影响是什么?如果不采用Tensorflow的“服务”特性,是否需要重新初始化?我非常希望能得到一些建议,找到一种干净的方法来实现Flask/Tensorflow的方法。
回答:
没有必要使用带有TensorFlow Serving的gRPC,这是我们在示例和标准模型服务器中使用的。我对Flask不熟悉,但你可以创建自己的main.cc文件,像https://github.com/tensorflow/serving/blob/master/tensorflow_serving/model_servers/main.cc一样创建一个ServerCore,但使用非gRPC前端。
这不会影响实际的服务器模型管理,如图的初始化和加载哪些模型,它只会改变服务器的API。