我正在使用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 .
感谢任何可以帮助降低推理时间的指针 . 谢谢 !
1 回答
解决并解决了这个问题 . 现在能够获得次秒预测时间 . 有很多问题 . 一个是正在发挥作用的图像上传/下载时间 . 第二个是当我使用GPU运行时,tensorflow服务没有使用GPU支持进行编译 . 使用这些链接中列出的两种方法解决了GPU问题 - https://github.com/tensorflow/serving/issues/318和https://github.com/tensorflow/tensorflow/issues/4841