tensorflow serving 编写配置文件platform_config_file的方法
1、安装grpc
gRPC 的安装:
$ pip install grpcio
安装 ProtoBuf 相关的 python 依赖库:
$ pip install protobuf
安装 python grpc 的 protobuf 编译工具:
$ pip install grpcio-tools
2、在serving目录运行脚本,生成*_pb2.py文件
# run at root of tensorflow_serving repo TARGET_DIR="$1" python -m grpc.tools.protoc \
-I . -I ./tensorflow \
--python_out "$TARGET_DIR" \
tensorflow_serving/servables/tensorflow/saved_model_bundle_source_adapter.proto \
tensorflow_serving/servables/tensorflow/session_bundle_config.proto \
tensorflow_serving/config/platform_config.proto pushd $TARGET_DIR touch tensorflow_serving/__init__.py
touch tensorflow_serving/config/__init__.py
touch tensorflow_serving/servables/__init__.py
touch tensorflow_serving/servables/tensorflow/__init__.py popd
sh gen-tf-serving-proto-py.sh /tmp
3、将生成的*_pb2.py文件cp出来
cp -r /tmp/tensorflow_serving .
4、在当前目录运行gen-platform-config.py
# -*- coding: utf-8 -*- import tensorflow as tf from tensorflow_serving.config import platform_config_pb2
from tensorflow_serving.servables.tensorflow import session_bundle_config_pb2
from tensorflow_serving.servables.tensorflow import saved_model_bundle_source_adapter_pb2 session_config = tf.ConfigProto()
# config whatever you want
session_config.gpu_options.allow_growth = True
session_config.gpu_options.per_process_gpu_memory_fraction = 0.4 legacy_config=session_bundle_config_pb2.SessionBundleConfig(session_config=session_config)
adapter = saved_model_bundle_source_adapter_pb2.SavedModelBundleSourceAdapterConfig(legacy_config=legacy_config) config_map = platform_config_pb2.PlatformConfigMap()
config_map.platform_configs['tensorflow'].source_adapter_config.Pack(adapter) print(config_map)
5、生成platform_config_file.cfg文件
platform_configs {
key: "tensorflow"
value {
source_adapter_config {
[type.googleapis.com/tensorflow.serving.SavedModelBundleSourceAdapterConfig] {
legacy_config {
session_config {
gpu_options {
per_process_gpu_memory_fraction: 0.4
allow_growth: true
}
}
}
}
}
}
}
6、运行tf_serving时添加参数--platform_config_file=./conf/platform_config_file.cfg
7、若同时需要配置batching_parameters_file,则需要将batching参数写入到platform_config_file.cfg内
platform_configs {
key: "tensorflow"
value {
source_adapter_config {
[type.googleapis.com/tensorflow.serving.SavedModelBundleSourceAdapterConfig] {
legacy_config {
batching_parameters {
max_batch_size { value: }
batch_timeout_micros { value: }
max_enqueued_batches { value: }
num_batch_threads { value: }
}
session_config {
allow_soft_placement: true
gpu_options {
per_process_gpu_memory_fraction: 0.4
allow_growth: true
}
}
}
}
}
}
}
详细信息参照:https://github.com/tensorflow/serving/issues/342
我运行后生成的cfg文件为
platform_configs {
key: "tensorflow"
value {
source_adapter_config {
type_url: "type.googleapis.com/tensorflow.serving.SavedModelBundleSourceAdapterConfig"
value: "\302>\017\022\r2\013\t\232\231\231\231\231\231\331? \001"
}
}
}
并不能生成清晰的text格式的配置文件,目前还未找到原因
tensorflow serving 编写配置文件platform_config_file的方法的更多相关文章
- TensorFlow Serving简介
一.TensorFlow Serving简介 TensorFlow Serving是GOOGLE开源的一个服务系统,适用于部署机器学习模型,灵活.性能高.可用于生产环境. TensorFlow Ser ...
- 学习笔记TF067:TensorFlow Serving、Flod、计算加速,机器学习评测体系,公开数据集
TensorFlow Serving https://tensorflow.github.io/serving/ . 生产环境灵活.高性能机器学习模型服务系统.适合基于实际数据大规模运行,产生多个模型 ...
- tensorflow serving
1.安装tensorflow serving 1.1确保当前环境已经安装并可运行tensorflow 从github上下载源码 git clone --recurse-submodules https ...
- 基于TensorFlow Serving的深度学习在线预估
一.前言 随着深度学习在图像.语言.广告点击率预估等各个领域不断发展,很多团队开始探索深度学习技术在业务层面的实践与应用.而在广告CTR预估方面,新模型也是层出不穷: Wide and Deep[1] ...
- Tensorflow serving的编译
Tensorflow serving提供了部署tensorflow生成的模型给线上服务的方法,包括模型的export,load等等. 安装参考这个 https://github.com/tensorf ...
- tensorflow 模型保存与加载 和TensorFlow serving + grpc + docker项目部署
TensorFlow 模型保存与加载 TensorFlow中总共有两种保存和加载模型的方法.第一种是利用 tf.train.Saver() 来保存,第二种就是利用 SavedModel 来保存模型,接 ...
- 通过Docker构建TensorFlow Serving
最近在用Docker搭建TensorFlow Serving, 在查阅了官方资料后,发现其文档内有不少冗余的步骤,便一步步排查,终于找到了更简单的Docker镜像构建方法.这里有两种方式: 版本一: ...
- tensorflow serving 之minist_saved_model.py解读
最近在学习tensorflow serving,但是就这样平淡看代码可能觉得不能真正思考,就想着写个文章看看,自己写给自己的,就像自己对着镜子演讲一样,写个文章也像自己给自己讲课,这样思考的比较深,学 ...
- 用yaml来编写配置文件
yaml是一个数据序列化的标准,适用于所有开发语言,最大的特点是可读性好. yaml的一个主要应用方向就是编写配置文件,有非常多的系统和框架采用yaml进行配置. yaml有以下基本规则: 1.大小写 ...
随机推荐
- 利用ViewStub来延迟加载视图
很多情况下,我们的视图可能会随着用户的操作的不同而变化,比如一个新的页面包含多个控件,但仅仅在用户点击这个按钮后,所有的控件才能完全显示.也就是说一上来可能就显示一个控件,点击按钮后把其他隐藏的控件再 ...
- 离线环境下使用二进制方式安装配置Kubernetes集群
本文环境 Redhat Linux 7.3,操作系统采用的最小安装方式. Kubernetes的版本为 V1.10. Docker版本为18.03.1-ce. etcd 版本为 V3.3.8. 1. ...
- scriptcs简介
一.scriptcs简介 scriptcs易于编写和执行C #用一个简单的文本编辑器. 在Visual Studio中,和其他的思想,是功能强大的工具,他们有时会阻碍生产力比他们更促进它. 您并不总是 ...
- 零基础写python爬虫之使用Scrapy框架编写爬虫
网络爬虫,是在网上进行数据抓取的程序,使用它能够抓取特定网页的HTML数据.虽然我们利用一些库开发一个爬虫程序,但是使用框架可以大大提高效率,缩短开发时间.Scrapy是一个使用Python编写的,轻 ...
- junit5了解一下
要求java8及以上版本 JUnit 5 = JUnit Platform + JUnit Jupiter + JUnit Vintage https://junit.org/junit5/docs/ ...
- matlib实现梯度下降法
样本文件下载:ex2Data.zip ex2x.dat文件中是一些2-8岁孩子的年龄. ex2y.dat文件中是这些孩子相对应的体重. 我们尝试用批量梯度下降法,随机梯度下降法和小批量梯度下降法来对这 ...
- 文本框只能输入数字(兼容IE火狐)
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...
- Qt学习之路(28): 坐标变换
经过前面的章节,我们已经能够画出一些东西来,主要就是使用QPainter的相关函数.今天,我们要看的是QPainter的坐标系统. 同很多坐标系统一样,QPainter的默认坐标的原点(0, 0) ...
- AngulerJS学习(五)按需动态载入文件
在此之前我么年首先要先了解几个东西: $q 简单介绍: $q:主要解决的是异步编程的问题,是指描写叙述通过一个承诺行为与对象代表的异步运行的行动结果的交互.可能会也可能不会再不论什么时候完毕. 我们通 ...
- Tensorflow进行POS词性标注NER实体识别 - 构建LSTM网络进行序列化标注
http://blog.csdn.net/rockingdingo/article/details/55653279 Github下载完整代码 https://github.com/rockingd ...