我用占位符训练模型is_training:
is_training_ph = tf.placeholder(tf.bool)
Run Code Online (Sandbox Code Playgroud)
但是一旦完成训练和验证,我想永久地false为这个值注入常数,然后"重新优化"图形(即使用optimize_for_inference).有什么东西freeze_graph会这样做吗?
我已经使用SavedModel(Inception_resnet_v2)导出TensorFlow模型文件并使用TensorFlow服务来加载文件.我已经用我自己的Inception_resnet_v2 saved_model.pb文件直接替换了官方最小的saved_model.pb.但我有一个错误.
deep@ubuntu:~/serving$ bazel-bin/tensorflow_serving/model_servers/tensorflow_model_server --port=9000 --model_name=mnist --model_base_path=/home/deep/serving/tmp/mnist_model
2017-06-18 10:39:41.963490: I tensorflow_serving/model_servers/main.cc:146] Building single TensorFlow model file config: model_name: mnist model_base_path: home/deep/serving/tmp/mnist_model model_version_policy: 0
2017-06-18 10:39:41.963752: I tensorflow_serving/model_servers/server_core.cc:375] Adding/updating models.
2017-06-18 10:39:41.963762: I tensorflow_serving/model_servers/server_core.cc:421] (Re-)adding model: mnist
2017-06-18 10:39:42.065556: I tensorflow_serving/core/basic_manager.cc:698] Successfully reserved resources to load servable {name: mnist version: 1}
2017-06-18 10:39:42.065610: I tensorflow_serving/core/loader_harness.cc:66] Approving load for servable version {name: mnist version: 1}
2017-06-18 10:39:42.065648: I tensorflow_serving/core/loader_harness.cc:74] Loading servable version {name: mnist version: 1}
2017-06-18 10:39:42.065896: I external/org_tensorflow/tensorflow/contrib/session_bundle/bundle_shim.cc:360] Attempting to …
我知道"提供Tensorflow模型"页面
https://www.tensorflow.org/serving/serving_basic
但是那些函数假设你正在使用DNNC分类器教程没有使用的tf.Session()...然后我查看了DNNClassifier的api文档,它有一个export_savedmodel函数(导出函数已弃用),看起来很简单但是我得到一个"'NoneType'对象是不可迭代的"错误...这意味着我要传递一个空变量,但我不确定我需要改变什么...我基本上复制和粘贴tensorflow.org上的get_started/tflearn页面中的代码,但随后又添加了
directoryName = "temp"
def serving_input_fn():
print("asdf")
classifier.export_savedmodel(
directoryName,
serving_input_fn
)
Run Code Online (Sandbox Code Playgroud)
在classifier.fit函数调用之后... export_savedmodel的其他参数是可选的我相信......任何想法?
代码教程:https: //www.tensorflow.org/get_started/tflearn#construct_a_deep_neural_network_classifier
export_savedmodel的API文档 https://www.tensorflow.org/api_docs/python/tf/contrib/learn/DNNClassifier#export_savedmodel
我正在尝试为这里的tensforflow 服务创建一个 docker 图像。
当我尝试使用所有必需的依赖项(pip 依赖项、bazel、grpc)拉取 docker 镜像时

我在这里做错了什么?我相信它适用于除我之外的所有人。我在 Windows 7 中使用 docker 工具箱,这是我第一次使用 docker。我不知道这个错误说的是什么
码头工人版本
我正在使用 --model_config_file 选项运行 tensorflow_model_server(使用 apt-get 安装的 1.8.0 版)。
我的配置文件大致如下:
model_config_list: {
config: {
name: "MyModelName",
base_path: "<path to model>/MyModelName"
model_platform: "tensorflow"
}
}
Run Code Online (Sandbox Code Playgroud)
在 MyModelName 目录中有 3 个版本的模型(目录 1、2 和 3)。
当我启动模型服务器时,我可以看到版本 3 可用,我可以通过不指定版本(因此假定为最新版本)或专门要求版本 3 来通过服务客户端访问它。
如果我尝试并特别要求模型的第 2 版,则请求将失败并显示错误消息“找不到请求的 Servable:Specific(MyModelName, 2)”。
是否可以通过 tensorflow_model_server 命令行选项或我的模型配置文件的内容让磁盘上存在的所有模型版本都可以使用?
在 python 中,您可以简单地传递一个 numpy 数组以predict()从您的模型中获取预测。使用带有 的 Java 的等价物是SavedModelBundle什么?
model = tf.keras.models.Sequential([
# layers go here
])
model.compile(...)
model.fit(x_train, y_train)
predictions = model.predict(x_test_maxabs) # <= This line
Run Code Online (Sandbox Code Playgroud)
SavedModelBundle model = SavedModelBundle.load(path, "serve");
model.predict() // ????? // What does it take as in input? Tensor?
Run Code Online (Sandbox Code Playgroud) 目前,我正在为 TF2 模型构建异步前端。现在它作为两个服务运行,第一个服务是扭曲服务,第二个服务是 TensorFlow 服务。
异步 Web 客户端用于异步查询模型。出于实际原因,我已将模型部署到 GCP AI Platform 中,并且我可以使用示例中的 python 代码从中获取数据,这没问题。
但问题是 Google API 客户端是同步的,我想使用异步客户端。因为据我所知,GCP 没有主动支持的异步客户端,所以我尝试直接使用 REST。TensorFlow 服务上的模型输入是相同的(我相信 GCP AI Platform 在内部使用 TensorFlow 服务)。
要执行异步调用,我需要:
我看到了一些例子:
import googleapiclient.discovery
credentials = service_account.Credentials.from_service_account_file(
'/path/to/key.json',
scopes=['https://www.googleapis.com/auth/cloud-platform'])
Run Code Online (Sandbox Code Playgroud)
但问题是credential.token,None所以我不能使用它。
所以我有一个问题:如何获得访问令牌以在其余请求中使用?
或者也许还有另一种更好的方法?
我已经看到以下问题:How to get access token from instance of google.oauth2.service_account.Credentials object? 但我认为这有点无关紧要。
python google-oauth google-cloud-platform tensorflow-serving
我使用以下代码创建了一个模型:
# Deep Learning
# In[25]:
from __future__ import print_function
import numpy as np
import tensorflow as tf
from six.moves import cPickle as pickle
from six.moves import range
# In[37]:
pickle_file = 'notMNIST.pickle'
with open(pickle_file, 'rb') as f:
save = pickle.load(f)
train_dataset = save['train_dataset']
train_labels = save['train_labels']
valid_dataset = save['valid_dataset']
valid_labels = save['valid_labels']
test_dataset = save['test_dataset']
test_labels = save['test_labels']
del save # hint to help gc free up memory
print('Training set', train_dataset.shape, train_labels.shape)
print('Validation set', valid_dataset.shape, valid_labels.shape)
print('Test set', test_dataset.shape, …Run Code Online (Sandbox Code Playgroud) 当前版本的tensorflow-serving尝试从asset.extra / tf_serving_warmup_requests文件加载预热请求。
2018-08-16 16:05:28.513085:I tensorflow_serving / servables / tensorflow / saved_model_warmup.cc:83]在/tmp/faster_rcnn_inception_v2_coco_2018_01_28_string_input_version-export/1/assets.extra/tf_serving_warmup上未找到热身数据文件
我想知道tensorflow是否提供通用的api将请求导出到该位置吗?还是我们应该手动将请求写到该位置?
当我尝试执行下面的一段客户端代码时,出现错误,但通过RESTful API端点调用时成功
curl -d '{"signature_name":"predict_output","instances":[2.0,9.27]}' -X POST http://10.110.110.13:8501/v1/models/firstmodel:predict
你能在下面的代码中纠正我吗
import tensorflow as tf
from tensorflow_serving.apis import predict_pb2
from tensorflow_serving.apis import prediction_service_pb2_grpc
import numpy as np
import grpc
server = '10.110.110.13:8501'
channel = grpc.insecure_channel(server)
stub = prediction_service_pb2_grpc.PredictionServiceStub(channel)
request = predict_pb2.PredictRequest()
request.model_spec.name = 'firstmodel'
request.model_spec.signature_name = 'predict_output'
request.inputs['input_x'].CopyFrom(tf.contrib.util.make_tensor_proto([12.0], shape=[1]))
result_future = stub.Predict(request,40.)
print(result_future.outputs['output_y'])
Run Code Online (Sandbox Code Playgroud)
得到了以下错误信息:
_Rendezvous: <_Rendezvous of RPC that terminated with:
status = StatusCode.UNAVAILABLE
details = "Trying to connect an http1.x server"
debug_error_string = "{"created":"@1545248014.367000000","description":"Error received from peer",
"file":"src/core/lib/surface/call.cc","file_line":1083,"grpc_message":"Trying to connect an …Run Code Online (Sandbox Code Playgroud) tensorflow ×7
docker ×1
git ×1
git-clone ×1
google-oauth ×1
grpc ×1
inference ×1
java ×1
keras ×1
python ×1
python-3.x ×1