我使用Google Cloud(4 CPU,15 GB RAM)来托管tensorflow服务(分支0.5.1)。该模型是一个预先训练好的Resnet,我使用Keras导入并使用SavedModelBuilder转换为.pb格式。我遵循了installation docs中提到的Tensorflow服务安装和编译步骤。使用了一个bazel构建:
bazel build tensorflow_serving /...
使用python客户端对本地计算机上的图像进行推断,在大约23秒内给出了结果。我可以通过遵循建议here进行微调。将bazel构建替换为以下命令以使用CPU优化。这使响应时间缩短到12秒。
bazel build -c opt --copt = -mavx --copt = -mavx2 --copt = -mfma --copt = -msse4.2 // tensorflow_serving / model_servers:tensorflow_model_server
我试过的其他东西导致响应时间没有差别.. 1.增加4 CPU到8 CPU机器 2.试用GPU Tesla K80 + 4 CPU机器
我没有尝试过批量优化,因为我目前只是使用单个推理请求进行测试。配置不是用户docker或Kubernettes。
感谢任何可以帮助降低推理时间的指针。谢谢!
答案 0 :(得分:0)
解决并解决了这个问题。现在能够获得次秒预测时间。有很多问题。 一个是正在发挥作用的图像上传/下载时间。 第二个是当我使用GPU运行时,tensorflow服务没有使用GPU支持进行编译。使用这些链接中列出的两种方法解决了GPU问题 - https://github.com/tensorflow/serving/issues/318和https://github.com/tensorflow/tensorflow/issues/4841