标签: tensorflow-serving

如何使用Google Compute Engine实例设置Tensorflow群集来训练模型?

我理解可以使用docker图像,但是我需要Kubernetes来创建一个集群吗?有关于模型服务的说明,但是关于Kubernetes的模型培训呢?

kubernetes tensorflow-serving gcp

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

Tensorflow交叉设备通信

正如张量流论文所述,Tensorflow的跨设备通信是通过将"接收节点"和"发送节点"添加到设备中来实现的.

根据我的理解,设备(请仅考虑涉及CPU设备)负责执行操作的计算.但是,数据(例如:从操作生成的Tensor,可变缓冲区)驻留在内存中.我不知道如何从物理上实现从一个设备到另一个设备的数据传输.我猜数据传输是通过共享内存实现的.是对的吗?

我将理解有关如何实现数据传输的任何解释/相应代码.PS:TensorFlow纸张链接,图4显示了跨设备通信机制.

tensorflow tensorflow-serving

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

如何从Tensorflow对象检测API正确提供对象检测模型?

我正在将Tensorflow对象检测API(github.com/tensorflow/models/tree/master/object_detection)与一个对象检测任务一起使用。现在我在使用Tensorflow Serving(tensorflow.github.io/serving/)训练的检测模型的服务上遇到问题。

1.我遇到的第一个问题是关于将模型导出到可服务文件。对象检测api包括导出脚本,因此我能够将ckpt文件转换为带变量的pb文件。但是,输出文件在“变量”文件夹中将没有任何内容。我虽然这是一个错误,并在Github上进行了报告,但似乎他们进行了实习,将变量转换为常量,这样就没有变量了。细节可以在这里找到。

我在导出保存的模型时使用的标志如下:

    CUDA_VISIBLE_DEVICES=0 python export_inference_graph.py \
        --input_type image_tensor \
            --pipeline_config_path configs/rfcn_resnet50_car_Jul_20.config \
                --checkpoint_path resnet_ckpt/model.ckpt-17586 \
                    --inference_graph_path serving_model/1 \
                      --export_as_saved_model True
Run Code Online (Sandbox Code Playgroud)

当我将--export_as_saved_model切换为False时,它在python中运行良好。

但是,我仍然在为模型服务方面遇到问题。

当我尝试跑步时:

~/serving$ bazel-bin/tensorflow_serving/model_servers/tensorflow_model_server --port=9000 --model_name=gan --model_base_path=<my_model_path>
Run Code Online (Sandbox Code Playgroud)

我有:

2017-07-27 16:11:53.222439: I external/org_tensorflow/tensorflow/cc/saved_model/loader.cc:155] Restoring SavedModel bundle.
2017-07-27 16:11:53.222497: I external/org_tensorflow/tensorflow/cc/saved_model/loader.cc:165] The specified SavedModel has no variables; no checkpoints were restored.
2017-07-27 16:11:53.222502: I external/org_tensorflow/tensorflow/cc/saved_model/loader.cc:190] Running LegacyInitOp on SavedModel bundle.
2017-07-27 16:11:53.229463: I external/org_tensorflow/tensorflow/cc/saved_model/loader.cc:284] Loading SavedModel: success. Took 281805 microseconds.
2017-07-27 16:11:53.229508: I tensorflow_serving/core/loader_harness.cc:86] Successfully loaded …
Run Code Online (Sandbox Code Playgroud)

object-detection tensorflow tensorflow-serving

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

MInimum工作示例tensorflow服务客户端

我正在研究基本的Tensorflow服务示例.我遵循MNIST示例,除了分类我想使用numpy数组预测另一个numpy数组.

为此,我首先训练了我的神经网络

x = tf.placeholder("float", [None, n_input],name ="input_values")

weights = {
    'encoder_h1': tf.Variable(tf.random_normal([n_input, n_hidden_1])),
    'encoder_h2': tf.Variable(tf.random_normal([n_hidden_1, n_hidden_2])),
    'encoder_h3': tf.Variable(tf.random_normal([n_hidden_2, n_hidden_3])),
    'decoder_h1': tf.Variable(tf.random_normal([n_hidden_3, n_hidden_2])),
    'decoder_h2': tf.Variable(tf.random_normal([n_hidden_2, n_hidden_1])),
    'decoder_h3': tf.Variable(tf.random_normal([n_hidden_1, n_input])),
}
biases = {
    'encoder_b1': tf.Variable(tf.random_normal([n_hidden_1])),
    'encoder_b2': tf.Variable(tf.random_normal([n_hidden_2])),
    'encoder_b3': tf.Variable(tf.random_normal([n_hidden_3])),
    'decoder_b1': tf.Variable(tf.random_normal([n_hidden_2])),
    'decoder_b2': tf.Variable(tf.random_normal([n_hidden_1])),
    'decoder_b3': tf.Variable(tf.random_normal([n_input])),
}

# Building the encoder
def encoder(x):
    # Encoder Hidden layer with sigmoid activation #1
    layer_1 = tf.nn.tanh(tf.matmul(x, weights['encoder_h1'])+biases['encoder_b1'])
    print(layer_1.shape)
    # Decoder Hidden layer with sigmoid activation #2
    layer_2 …
Run Code Online (Sandbox Code Playgroud)

c++ python grpc tensorflow tensorflow-serving

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

张量流推理图性能优化

我试图更多地了解在执行tf图时看到的某些令人惊讶的结果。我正在使用的图形只是一片森林(一堆树)。这只是一个简单的前向推论图,与训练无关。我正在分享2个实施的摘要

代码段1:

with tf.name_scope("main"):

    def get_tree_output(offset):
        loop_vars = (offset,)
        leaf_indice = tf.while_loop(cond,
                                    body,
                                    loop_vars,
                                    back_prop=False,
                                    parallel_iterations=1,
                                    name="while_loop")
        tree_score = tf.gather(score_tensor, leaf_indice, name="tree-scores")
        output = tf.add(tree_score, output)

    leaf_indices = tf.map_fn(get_tree_output,
                             tree_offsets_tensor,
                             dtype=INT_TYPE,
                             parallel_iterations=n_trees,
                             back_prop=False,
                             name="tree-scores")

    tree_scores = tf.gather(score_tensor, leaf_indices, name="tree-scores")

    output = tf.reduce_sum(tree_scores, name="sum-output")
    output = tf.sigmoid(output, name="sigmoid-output")
Run Code Online (Sandbox Code Playgroud)

代码段2:

with tf.name_scope("main"):
    tree_offsets_tensor = tf.constant(tree_offsets, dtype=INT_TYPE, name="tree_offsets_tensor")
    loop_vars = (tree_offsets_tensor,)
    leaf_indices = tf.while_loop(cond,
                                 body,
                                 loop_vars,
                                 back_prop=False,
                                 parallel_iterations=n_trees,
                                 name="while_loop")

    tree_scores = tf.gather(score_tensor, leaf_indices, name="tree-scores")

    output = tf.reduce_sum(tree_scores, name="sum-output")
    output = tf.sigmoid(output, name="sigmoid-output")
Run Code Online (Sandbox Code Playgroud)

其余代码完全相同:while循环的常量张量,变量,条件和主体。在两种情况下,线程和并行性也相同代码snippet2:需要大约500微秒来进行推理代码片段1:需要大约12毫秒来进行推理 …

machine-learning deep-learning tensorflow tensorflow-serving tensor

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

Keras模型到Tensorflow输入b64编码数据而不是numpy ml-engine预言

我正在尝试将keras模型转换为用于Google Cloud的ml-engine预测的模型。我有一个预先训练的分类器,将numpy数组作为输入。我发送给model.predict的正常工作数据称为input_data。

我将其转换为base 64,并json使用以下几行将其转储到文件中:

data = {}
data['image_bytes'] = [{'b64':base64.b64encode(input_data.tostring())}]

with open('weights/keras/example.json', 'w') as outfile:
    json.dump(data, outfile)
Run Code Online (Sandbox Code Playgroud)

现在,我尝试从现有模型创建TF模型:

from keras.models import model_from_json
import tensorflow as tf
from keras import backend as K
from tensorflow.python.saved_model import builder as saved_model_builder
from tensorflow.python.saved_model import utils
from tensorflow.python.saved_model import tag_constants, signature_constants
from tensorflow.python.saved_model.signature_def_utils_impl import build_signature_def, predict_signature_def
init = tf.global_variables_initializer()
with tf.Session() as sess:
    K.set_session(sess)
    sess.run(init)
    print("Keras model & weights loading...")
    K.set_learning_phase(0)
    with open(json_file_path, 'r') as file_handle:
        model = …
Run Code Online (Sandbox Code Playgroud)

keras tensorflow tensorflow-serving google-cloud-ml

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

Tensorflow对象检测API具有缓慢的推理时间和tensorflow服务

我无法匹配Google报告的模型动物园中发布的模型的推断时间.具体来说,我正在尝试他们的faster_rcnn_resnet101_coco模型,其中报告的推理时间是106ms在Titan X GPU上.

我的服务系统使用TF 1.4在由Google发布的Dockerfile构建的容器中运行.我的客户端是在Google发布的初始客户端之后建模的.

我正在运行Ubuntu 14.04,TF 1.4和1 Titan X.我的总推理时间比谷歌报告的差330倍~330ms.制作张量原型需要~150ms,Predict需要~180ms.我saved_model.pb是直接从模型动物园下载的tar文件.有什么我想念的吗?我可以采取哪些步骤来缩短推理时间?

object-detection tensorflow tensorflow-serving tensorflow-gpu object-detection-api

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

获取Tensorflow服务中的暴露模型的信息

一旦我有一台服务于多个模型的TF服务器,有没有办法查询这样的服务器以了解服务的模型?

是否有可能获得有关每个模型的信息,例如名称,界面,更重要的是,服务器上存在哪些模型版本并且可能会提供服务?

tensorflow tensorflow-serving

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

无法将类型&lt;class'werkzeug.datastructures.File.Storage&gt;的对象转换为张量

我正在编写一个使用flask框架的客户端python文件,并在docker机器中运行它。因此,这需要一个输入文件并产生输出。但是它引发了无法转换为张量的错误。

tf.app.flags.DEFINE_string('server', 'localhost:9000', 'PredictionService host:port')
FLAGS = tf.app.flags.FLAGS

app = Flask(__name__)

class mainSessRunning():

    def __init__(self):
        host, port = FLAGS.server.split(':')
        channel = implementations.insecure_channel(host, int(port))
        self.stub = prediction_service_pb2.beta_create_PredictionService_stub(channel)

        self.request = predict_pb2.PredictRequest()
        self.request.model_spec.name = 'modelX'
        self.request.model_spec.signature_name = 'prediction'

    def inference(self, val_x):
        data = val_x
        self.request.inputs['input'].CopyFrom(tf.contrib.util.make_tensor_proto(data))
        result = self.stub.Predict(self.request, 5.0)
        return result

run = mainSessRunning()


# Define a route for the default URL, which loads the form
@app.route('/pred', methods=['POST'])
def pred():
    request_data = request.files['file']
    result = run.inference(request_data)
    rs = json_format.MessageToJson(result)
    return jsonify({'result':rs})
Run Code Online (Sandbox Code Playgroud)

错误提示:

TypeError:无法将类型(类“ …

python machine-learning werkzeug tensorflow tensorflow-serving

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

请求tf服务服务器时出现连接失败错误,并且在Windows中都很好

我在Windows中制作服务器并成功请求,然后将它们放到公司的开发机器linux上。

运行clien.py时出现连接失败错误。我已经将主机IP localhost,0.0.0.0,127.0.0.1和开发机器的IP 更改了,但是它不起作用。

我尝试了该docker inspect命令,但是IPAddress像一样是空的""。我将端口更改为8500,8501,4321,但仍然收到错误。

我尝试对公司进行代理,请求返回Name resolution failure错误。所以我认为原因可能是公司的网络?

任何答案将不胜感激!

错误消息:

grpc._channel._Rendezvous: <_Rendezvous of RPC that terminated with:
        status = StatusCode.UNAVAILABLE
        details = "Connect Failed"
        debug_error_string = "{"created":"@1551677753.381330483","description":"Failed to create subchannel","file":"src/core/ext/filters/client_channel/client_channel.cc","file_line":2721,"referenced_errors":[{"created":"@1551677753.381328206","description":"Pick Cancelled","file":"src/core/ext/filters/client_channel/lb_policy/pick_first/pick_first.cc","file_line":241,"referenced_errors":[{"created":"@1551677753.381303114","description":"Connect Failed","file":"src/core/ext/filters/client_channel/subchannel.cc","file_line":689,"grpc_status":14,"referenced_errors":[{"created":"@1551677753.381278484","description":"Failed to connect to remote host: OS Error","errno":111,"file":"src/core/lib/iomgr/tcp_client_posix.cc","file_line":205,"os_error":"Connection refused","syscall":"connect","target_address":"ipv4:0.0.0.0:8501"}]}]}]}"
Run Code Online (Sandbox Code Playgroud)

grpc tensorflow-serving

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