问题标签 [tensorflow-serving]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
tensorflow - 如何使用 tensorflow 的协议缓冲区编译器从 .proto 文件正确地重新生成 python .pb2.py 文件?
以 incepetion_inference.proto 为例,我尝试使用以下命令重新生成 inception_inference.pb2.py 文件:
protoc inception_inference.proto --python_out=./
将新生成的文件 inception_inference.pb2.py 与最初从编译生成的文件进行比较,除了许可证通知外,它是相同的,底部包含:
等等等等...
我猜 Bazel 构建系统的某些部分将其注入到 .pb2.py 文件中,但我找不到这是在哪里完成的。
任何人都知道如何正确地重新生成这个文件?显然,理解这是生成我自己的 .proto 文件的必要步骤。
谢谢!
tensorflow - 如何使用 tensorflow 服务部署 parsey 的表兄弟
某处是否有说明或一些文档,或者有人可以描述如何在 Tensorflow 下使用 SyntaxNet 部署作为“Parsey's Cousins”(参见https://github.com/tensorflow/models/blob/master/syntaxnet/universal.md)的模型服务?即使只部署 Parsey 也是一项相当复杂的工作,在任何地方都没有真正记录在案,但是如何为额外的 40 种语言做到这一点呢?
database - 如何从 png 图像创建 TFRecords 文件
一周前我刚刚开始使用 TensorFlow,我遇到了一些基本问题。
主要的一个是我没有找到一种方法来创建包含我所有数据的 TFRecords。我知道这个过程是必要的,以便用几百万张 32x32 像素的图像训练我自己的网络。
我发现很多教程和很多文档都提到了“input_pipeline”,但是这些教程都没有清楚地解释如何使用自己的图像创建自己的数据库。
我有几个主要文件夹和一些子文件夹,每个文件夹约 300,000 张 png 图像,其中标签位于图像名称中(0 或 1 - 二进制分类)。
获取这些图像的方法是通过 (glob) 行:
所以我的问题是:
如何创建包含这些图像及其标签的 TFRecords 文件?
我会非常感谢你的帮助!我被这个问题困扰了将近两天,我只找到了关于 MNIT 和 ImageNet 的非常具体的答案。
谢谢!
scikit-learn - Tensorflow Scikit Flow 获取 GraphDef for Android(保存 *.pb 文件)
我想在 Android 应用程序中使用我的 Tensorflow 算法。Tensorflow Android 示例首先下载包含模型定义和权重的 GraphDef(在 *.pb 文件中)。现在这应该来自我的 Scikit Flow 算法(Tensorflow 的一部分)。
乍一看,你只需要说 classifier.save('model/') 似乎很容易,但保存到该文件夹的文件不是 *.ckpt、*.def,当然也不是 *.pb。相反,您必须处理 *.pbtxt 和检查点(没有结尾)文件。
我被困在那里已经有一段时间了。这是一个导出内容的代码示例:
你得到的文件是:
- 检查点
- 图.pbtxt
- 模型.ckpt-1.meta
- model.ckpt-1-00000-of-00001
- 模型.ckpt-200.meta
- model.ckpt-200-00000-of-00001
我发现的许多可能的解决方法都需要将 GraphDef 放在一个变量中(不知道如何使用 Scikit Flow)。或者似乎不需要使用 Scikit Flow 的 Tensorflow 会话。
tensorflow - 在 bazel 构建系统中配置相互依赖的项目(例如 tensorflow)的正确方法,以便 proto 导入按原样工作?
正如标题所暗示的,我遇到了一个问题,即 proto import 语句似乎与正确的路径无关。具体来说,考虑一个 dir 中的目录结构(我们称之为 ~/base):
对于那些不熟悉的人,models
(如在https://github.com/tensorflow/models/中)将 tensorflow(https://github.com/tensorflow/tensorflow)作为 git 子模块,就像serving
. 由于这一点,再加上 tensorflow 的 git 子模块在不同的提交上并且有时不兼容,我已经从项目中删除了 gitsubmodule 并将它们符号链接到最顶层目录上的 tensorflow 存储库,以便我只能管理一个张量流回购而不是3。那是我做了以下事情:
现在我想在其中构建一个my-lib
依赖于serving
、tensorflow
和的目标models
。我将这些作为本地存储库添加到我的 WORKSPACE 中,如下所示(cat my-lib/WORKSPACE
):
这是我的构建文件(cat my-lib/nlp/BUILD
):
最后,这是构建 ( cd my-lib; bazel build nlp/nlp_parser --verbose_failures
) 的输出:
在 WORKSPACE 中将模块添加为 local_repository 以便原型导入工作的正确方法是什么?
tensorflow - 为什么分布式 tensorflow 时间线跟踪将 QueueDequeue 操作标记为 PS 操作?
我在 AWS ubuntu 机器集群上运行 tensorflow 分布式初始模型,并通过
当我查看工作机器生成的时间线时,我看到了这个: 工作机器的时间线跟踪
注意右边的 QueueDequeue 操作,时间线说它是参数服务器 /job:ps/replica:0/task:0/cpu:0 的一部分。
由于 ScatterUpdate 就在 QueueDequeue 之后,如图所示,我相信此操作对应于同步副本优化器操作,其中工作人员尝试将令牌出列并进行分散更新:https ://github.com/tensorflow/tensorflow/blob /master/tensorflow/python/training/sync_replicas_optimizer.py#L412
但是如果是这样的话,应该是一个工作人员执行这个操作,而不是一个参数服务器。为什么时间线说参数服务器正在执行这个?
我正在使用 tensorflow 0.11,仅限 CPU。
docker - 无法在 Docker 中使用 sudo 命令,显示“bash: sudo: command not found”
我已经使用以下命令安装了 TensorFlow
我需要在 Windows 机器上设置 TensorFlow Serving。我按照说明sudo
并在安装 TensorFlow Serving 依赖项时运行下面提到的命令:
显示以下错误:
bazel - 运行“bazel test tensorflow_serving/...”时,Bazel 测试失败
我正在尝试按照https://tensorflow.github.io/serving/docker.html中的说明在 Windows 机器上使用 Docker 设置 TensorFlow Serving
我已经成功构建并运行了容器并克隆了 TensorFlow 服务子模块。但是,在运行命令时
"bazel test tensorflow_serving/..."
错误
Linking of rule: '//tensorflow_serving/batching/test_util:puppet_batch_scheduler_test' failed:gcc failed: error executing command /usr/bin/gcc ....
被展示
完整的堆栈跟踪如下图所示。
任何帮助表示赞赏。
docker - 增加docker的磁盘大小(错误:空间不足)
我在 Windows 机器上运行 docker,并且我有一个 Tensorflow Serving docker 映像。在检查我的图像的磁盘空间时,会显示以下详细信息:
在构建时,TensorFlow 使用命令“bazel build tensorflow_serving/...”提供服务,构建被终止并显示错误,指出“空间不足”。我需要增加磁盘大小,以便有足够的空间用于构建。但是,我无法想出一种方法来做到这一点。任何帮助表示赞赏。
tensorflow - Tensorflow Serving:批处理请求获得更高的延迟
我正在尝试在 GKE 上部署 TF Serving,并尝试制作一个高度可用的在线预测系统。我试图通过将多个请求批处理在一起来优化延迟。然而,延迟似乎受到影响而不是改善。
- 该模型是一个 CNN,长度约为 50 的输入向量。
- TF Serving 在具有 6 个标准节点的 Kubernetes 集群上运行
- 我尝试了大小为 5 和 10 的批次。我没有使用 TF Serving 的批处理实现,我只是发送了一个带有形状数组的请求,
(batch_size, input_size)
而不是(1, input_size)
我的直觉是,即使批处理在与 GPU 一起使用以使用其吞吐量时带来最大的好处,但与 CPU 一起使用不应使其变慢。减速如下图所示 - req/s 是相当预测/s 即 20 将分为 4 个或 2 个对服务器的请求。
我理解这不会将工作负载均匀地分布在集群上以获得较少数量的请求 - 但即使在查看 60 或 120 时,延迟也会更高。
知道为什么会这样吗?