标签: tensorflow-serving

在什么阶段设置了张量流图?

优化器通常为许多步骤运行相同的计算图,直到收敛.tensorflow是否在开始时设置图形并在每个步骤中重复使用它?如果我在培训期间更改批量大小怎么办?如果我改变损失函数对图表做一些减号怎么办?如果我对图表做了一些重大更改怎么办?张量流是否预先生成所有可能的图形?当图表发生变化时,tensorflow是否知道如何优化整个计算?

tensorflow tensorflow-serving

5
推荐指数
2
解决办法
792
查看次数

使用初始示例重新训练 Tensorflow 服务

我一直在尝试使用为 Inception 模型设置的服务工具来设置重新训练的 Inception 模型。我一直在关注这里的教程。我设法使用重新训练的模型设置了服务器。我将以下代码添加到 retrain.py 文件的末尾以导出它。

export_path = "/tmp/export"
export_version = "1"

# Export inference model.
init_op = tf.group(tf.initialize_all_tables(), name='init_op')
saver = tf.train.Saver(sharded=True)
model_exporter = exporter.Exporter(saver)
signature = exporter.classification_signature(input_tensor=jpeg_data_tensor,    scores_tensor=final_tensor)
model_exporter.init(sess.graph.as_graph_def(), default_graph_signature=signature)
model_exporter.export(FLAGS.export_dir, tf.constant(export_version), sess)
print('Successfully exported model to %s' % export_path)
Run Code Online (Sandbox Code Playgroud)

不过目前我只有 4 节课。我已经使用 Tensorflow 工具(不提供服务)创建了模型,我设法验证了我的模型是否适用于测试图像。现在我正在努力为它服务。我使用以下命令在模型上设置了一个服务器:

bazel-bin/tensorflow_serving/example/inception_inference --port=9000 /tmp/export/ &> retrain.log &
Run Code Online (Sandbox Code Playgroud)

我得到以下输出,它连续打印最后两行。

I tensorflow_serving/core/basic_manager.cc:189] Using InlineExecutor for BasicManager.
I tensorflow_serving/example/inception_inference.cc:383] Waiting for models to be loaded...
I tensorflow_serving/sources/storage_path/file_system_storage_path_source.cc:147] Aspiring version for servable default from path: …
Run Code Online (Sandbox Code Playgroud)

tensorflow tensorflow-serving

5
推荐指数
0
解决办法
1262
查看次数

Tensorflow Serving 批处理参数

如何做到用配料的性能优化max_batch_sizebatch_timeout_microsnum_batch_threads等参数?尝试将这些参数与 Query 客户端一起使用,它不起作用。

在下面的示例中,我有 100 张图像,我想以 10 的大小进行批处理。查询针对所有图像而不是 10 张运行。

bazel-bin/tensorflow_serving/example/demo_batch --server=localhost:9000 --max_batch_size=10
Run Code Online (Sandbox Code Playgroud)

另外,对于批量调度,如何在第一批完成后每 10 秒运行一次?谢谢。

tensorflow tensorflow-serving

5
推荐指数
0
解决办法
2464
查看次数

在Java中加载sklearn模型.在python中使用DNNClassifier创建的模型

目标是在Java中打开一个用python创建/训练的模型tensorflow.contrib.learn.learn.DNNClassifier.

目前主要问题是要知道在会话运行方法中用java给出的"张量"的名称.

我在python中有这个测试代码:

    from __future__ import division, print_function, absolute_import
import tensorflow as tf
import pandas as pd
import tensorflow.contrib.learn as learn
import numpy as np
from sklearn import metrics
from sklearn.cross_validation import train_test_split
from tensorflow.contrib import layers
from tensorflow.contrib.learn.python.learn.utils import input_fn_utils
from tensorflow.python.ops import array_ops
from tensorflow.python.framework import dtypes
from tensorflow.python.util.compat import as_text

print(tf.VERSION)

df = pd.read_csv('../NNNormalizeData-out.csv')

inputs = []
target = []

y=0;    
for x in df.columns:
    if y != 35 :
        #print("added %d" %y)
        inputs.append(x)
    else …
Run Code Online (Sandbox Code Playgroud)

java tensorflow sklearn-pandas tensorflow-serving

5
推荐指数
1
解决办法
4273
查看次数

在用于服务模型的Tensorflow中,服务输入函数应该做什么

因此,我一直在努力了解在Tensorflow中为训练模型导出训练模型时,serve_input_fn()的主要任务是什么.网上有一些例子可以解释它,但是我在为自己定义它时遇到了问题.

我试图解决的问题是回归问题,我有29个输入和一个输出.是否有用于为其创建相应服务输入功能的模板?如果我使用一类分类问题该怎么办?我的服务输入功能是否需要更改或者我可以使用相同的功能吗?

最后,我是否总是需要提供输入功能,还是仅当我使用tf.estimator导出我的模型时?

python tensorflow tensorflow-serving google-cloud-ml

5
推荐指数
1
解决办法
3580
查看次数

Tensorflow服务:请求失败,对象没有属性'unary_unary

我正在使用TensorFlow构建CNN文本分类器,我想在Tensorflow服务中加载并使用服务API进行查询。当我在grcp存根上调用Predict()方法时,收到此错误:AttributeError:'grpc._cython.cygrpc.Channel'对象没有属性'unary_unary'

到目前为止,我已经完成的工作:我已经成功地训练并导出了适合服务的模型(即,签名已经过验证并使用tf.Saver,我可以成功返回预测)。我还可以将模型正确加载到tensorflow_model_server中。

这是客户端代码的片段(为便于阅读而简化):

with tf.Session() as sess:
    host = FLAGS.server
    channel = grpc.insecure_channel('localhost:9001')
    stub = prediction_service_pb2.beta_create_PredictionService_stub(channel)

    request = predict_pb2.PredictRequest()
    request.model_spec.name = 'predict_text'
    request.model_spec.signature_name = 'predict_text'

    x_text = ["space"]

    # restore vocab processor
    # then create a ndarray with transform_fit using the vocabulary
    vocab = learn.preprocessing.VocabularyProcessor.restore('/some_path/model_export/1/assets/vocab')
    x = np.array(list(vocab.fit_transform(x_text)))

    # data
    temp_data = tf.contrib.util.make_tensor_proto(x, shape=[1, 15], verify_shape=True)
    request.inputs['input'].CopyFrom(tf.contrib.util.make_tensor_proto(x, shape=[1, 15], verify_shape=True))

    # get classification prediction
    result = stub.Predict(request, 5.0)
Run Code Online (Sandbox Code Playgroud)

我在哪里弯腰规则:当正式不支持pip安装时,我在Python 3.5.3中使用tensorflow-serving-apis。各种帖子(例如:https : //github.com/tensorflow/serving/issues/581)都报告说,将tensorflow-serving与Python 3结合使用已成功。我已经从pypi(https://pypi.python.org/pypi/tensorflow-serving-api/1.5.0)下载了tensorflow-serving-apis软件包,并手动粘贴到了环境中。

版本:tensorflow:1.5.0,tensorflow-serving-apis:1.5.0,grpcio:1.9.0rc3,grcpio-tools:1.9.0rcs,protobuf:3.5.1(所有其他依赖版本已通过验证,但不包括在简洁-如果有实用程序,很高兴添加)

环境:Linux Mint …

python-3.x tensorflow tensorflow-serving

5
推荐指数
1
解决办法
1493
查看次数

如何使用 tensorflow-serving 发布自定义(非 tensorflow)模型?

我已经阅读了基本高级tensorflow-serving 教程,但我仍然不清楚如何在 tensorflow-serving 中为以下内容建立支持:

  1. 用 Python 构建的模型(如 xgboost 或 scikit-learn)
  2. 内置 R 的模型(如 xgboost 或 lightgbm)

考虑使用 TFBT 可用tf.contrib,但根据thisTensorFlow Boosted Trees (TFBT)需要更长的时间以培训相比xgboost,并指出它有精度差。

任何帮助或建议将不胜感激...

python serving tensorflow tensorflow-serving

5
推荐指数
1
解决办法
1205
查看次数

TensorFlow Serving REST API 的正确有效负载

我已将 Keras 模型转换为 Tensorflow 估计器,将 Tensorflow Transform 添加到图中,然后导出模型以供服务。

当我检查模型签名时,我可以看到以下信息:

signature_def['serving_default']:
  The given SavedModel SignatureDef contains the following input(s):
    inputs['examples'] tensor_info:
        dtype: DT_STRING
        shape: (-1)
        name: input_example_tensor:0
  The given SavedModel SignatureDef contains the following output(s):
    outputs['specialities'] tensor_info:
        dtype: DT_FLOAT
        shape: (-1, 154)
        name: specialities/Softmax:0
  Method name is: tensorflow/serving/predict
Run Code Online (Sandbox Code Playgroud)

我转换了特征规范,tf.estimator.export.build_parsing_serving_input_receiver_fn因此签名中输入节点的名称是example. 我的模型中输入节点的名称是procedures.

然后我使用saved_model_cli手动测试导出的模型,一切看起来都很好(我得到了一个概率列表)

!saved_model_cli run --dir=/model_dir/1533849825 
                     --tag_set serve 
                     --signature_def serving_default  
                     --input_examples 'examples=[{"procedures": ["99214,17000,17000,13121,99203"]}]'
Run Code Online (Sandbox Code Playgroud)

现在,我将此模型加载到 TF Serving 中,模型服务器启动正常。

当我使用下面的 json 有效负载 (application/json) 请求模型预测时,我收到以下错误:

{
  "signature_name":"serving_default",
  "instances":[ …
Run Code Online (Sandbox Code Playgroud)

rest keras tensorflow tensorflow-serving tensorflow-estimator

5
推荐指数
1
解决办法
4046
查看次数

在Python中部署Tensorflow模型

需要帮助实时实施Tensorflow模型.虽然我正在训练一切工作正常但是当我继续进行实时预测或预测时,我收到的输出不及格.我不知道为什么会这样.我在这里使用了代码的引用:https://www.kaggle.com/raoulma/ny-stock-price-prediction-rnn-lstm-gru/notebook 并尝试使用相同的代码实现或部署,几乎没有更改.

请参阅以下代码:

import numpy as np
import pandas as pd
import sklearn
import sklearn.preprocessing
import datetime
import os
import tensorflow as tf

df = pd.read_csv("Realtime_Values.csv", index_col = 0)
df.info()
def load_data(stock,seq_len):

    data_raw = stock.as_matrix() # convert to numpy array
    data = []

    for index in range(len(data_raw) - seq_len): 
        data.append(data_raw[index: index + seq_len])
    #print(len(data))
    data = np.array(data);

    x_forecast = data[:,:-1,:]
    return x_forecast

def normalize_data(df):
    cols = list(df.columns.values)
    min_max_scaler = sklearn.preprocessing.MinMaxScaler()
    df = pd.DataFrame(min_max_scaler.fit_transform(df.values))
    df.columns = cols
    return …
Run Code Online (Sandbox Code Playgroud)

python deployment python-3.x tensorflow tensorflow-serving

5
推荐指数
1
解决办法
344
查看次数

如何使用多个model_spec创建单个PredictRequest()?

我正在尝试将多个model_spec及其受尊敬的输入添加为单个 predict_pb2.PredictRequest(),如下所示:

tmp = predict_pb2.PredictRequest()

tmp.model_spec.name = '1'
tmp.inputs['tokens'].CopyFrom(make_tensor_proto([1,2,3]))


tmp.model_spec.name = '2'
tmp.inputs['tokens'].CopyFrom(make_tensor_proto([4,5,6]))
Run Code Online (Sandbox Code Playgroud)

但是我只得到2的信息:

>> tmp

model_spec {
  name: "2"
}
inputs {
  key: "tokens"
  value {
    dtype: DT_INT32
    tensor_shape {
      dim {
        size: 3
      }
    }
    tensor_content: "\004\000\000\000\005\000\000\000\006\000\000\000"
  }
}
Run Code Online (Sandbox Code Playgroud)

如何为具有各自输入的多个模型获得单个PredictRequest()?

我的目的是创建一个请求并将其发送到为两个模型提供服务的tensorflow服务。还有其他解决方法吗?为两个模型创建两个单独的请求,并从tf_serving一个接一个的工作中获得结果,但是我想知道是否可以将两个请求合并为一个。

tensorflow tensorflow-serving

5
推荐指数
1
解决办法
148
查看次数