TensorFlow Serving is a flexible, high-performance serving system for machine learning models, designed for production environments.

Overview

TensorFlow Serving

Ubuntu Build Status Ubuntu Build Status at TF HEAD Docker CPU Nightly Build Status Docker GPU Nightly Build Status


TensorFlow Serving is a flexible, high-performance serving system for machine learning models, designed for production environments. It deals with the inference aspect of machine learning, taking models after training and managing their lifetimes, providing clients with versioned access via a high-performance, reference-counted lookup table. TensorFlow Serving provides out-of-the-box integration with TensorFlow models, but can be easily extended to serve other types of models and data.

To note a few features:

  • Can serve multiple models, or multiple versions of the same model simultaneously
  • Exposes both gRPC as well as HTTP inference endpoints
  • Allows deployment of new model versions without changing any client code
  • Supports canarying new versions and A/B testing experimental models
  • Adds minimal latency to inference time due to efficient, low-overhead implementation
  • Features a scheduler that groups individual inference requests into batches for joint execution on GPU, with configurable latency controls
  • Supports many servables: Tensorflow models, embeddings, vocabularies, feature transformations and even non-Tensorflow-based machine learning models

Serve a Tensorflow model in 60 seconds

# Download the TensorFlow Serving Docker image and repo
docker pull tensorflow/serving

git clone https://github.com/tensorflow/serving
# Location of demo models
TESTDATA="$(pwd)/serving/tensorflow_serving/servables/tensorflow/testdata"

# Start TensorFlow Serving container and open the REST API port
docker run -t --rm -p 8501:8501 \
    -v "$TESTDATA/saved_model_half_plus_two_cpu:/models/half_plus_two" \
    -e MODEL_NAME=half_plus_two \
    tensorflow/serving &

# Query the model using the predict API
curl -d '{"instances": [1.0, 2.0, 5.0]}' \
    -X POST http://localhost:8501/v1/models/half_plus_two:predict

# Returns => { "predictions": [2.5, 3.0, 4.5] }

End-to-End Training & Serving Tutorial

Refer to the official Tensorflow documentations site for a complete tutorial to train and serve a Tensorflow Model.

Documentation

Set up

The easiest and most straight-forward way of using TensorFlow Serving is with Docker images. We highly recommend this route unless you have specific needs that are not addressed by running in a container.

Use

Export your Tensorflow model

In order to serve a Tensorflow model, simply export a SavedModel from your Tensorflow program. SavedModel is a language-neutral, recoverable, hermetic serialization format that enables higher-level systems and tools to produce, consume, and transform TensorFlow models.

Please refer to Tensorflow documentation for detailed instructions on how to export SavedModels.

Configure and Use Tensorflow Serving

Extend

Tensorflow Serving's architecture is highly modular. You can use some parts individually (e.g. batch scheduling) and/or extend it to serve new use cases.

Contribute

If you'd like to contribute to TensorFlow Serving, be sure to review the contribution guidelines.

For more information

Please refer to the official TensorFlow website for more information.

Comments
  • Sharp increase in memory usage -> server is killed

    Sharp increase in memory usage -> server is killed

    Every so often I have found my tensorflow server killing itself due to memory usage hitting capacity. I can't quite figure out how or why this happening because it only happens occasionally and my process to use the server to infer files sequentially is identical between multiple servers and runtimes.

    My guess is the issue is related to the files itself (the only non-constant), has anybody run into similar problems? For the sake of context, I am using my tf server to translate text in these files.

    stat:awaiting response type:performance 
    opened by echan00 55
  • Not found error when trying to run model

    Not found error when trying to run model

    Trying bazel build -c opt tensorflow_serving/... doesn't work so, it always gives me a SIMD not enabled (maybe define GEMMLOWP_ALLOW_SLOW_SCALAR_FALLBACK in the source code when x86_64) error, so I had to use bazel build -c opt --copt=-msse4.1 --copt=-msse4.2 tensorflow_serving/... and that built wihtout any errors. But now I always get the same error when trying to test the running model, in fact I get the error trying to run anything in the container. I had to export the model myself by adding savedmodelbuilder code into the retrain script for inception. I'm on an Ubunutu PC, but I tried running tensorflow serving on a mac pro and got the same error when trying bazel build -c opt tensorflow_serving/... so again I had to use bazel build -c opt --copt=-msse4.1 --copt=-msse4.2 tensorflow_serving/..., and again the same exact error listed below

    root@42fd2c27af9d:/serving# bazel-bin/tensorflow_serving/example/inception_client --server=localhost:9000 --image=./Xiang_Xiang_panda.jpg
    Traceback (most recent call last):
      File "/serving/bazel-bin/tensorflow_serving/example/inception_client.runfiles/tf_serving/tensorflow_serving/example/inception_client.py", line 56, in <module>
        tf.app.run()
      File "/serving/bazel-bin/tensorflow_serving/example/inception_client.runfiles/org_tensorflow/tensorflow/python/platform/app.py", line 129, in run
        _sys.exit(main(argv))
      File "/serving/bazel-bin/tensorflow_serving/example/inception_client.runfiles/tf_serving/tensorflow_serving/example/inception_client.py", line 50, in main
        tf.contrib.util.make_tensor_proto(data, shape=[1]))
      File "/serving/bazel-bin/tensorflow_serving/example/inception_client.runfiles/org_tensorflow/tensorflow/python/util/lazy_loader.py", line 53, in __getattr__
        module = self._load()
      File "/serving/bazel-bin/tensorflow_serving/example/inception_client.runfiles/org_tensorflow/tensorflow/python/util/lazy_loader.py", line 42, in _load
        module = importlib.import_module(self.__name__)
      File "/usr/lib/python2.7/importlib/__init__.py", line 37, in import_module
        __import__(name)
      File "/serving/bazel-bin/tensorflow_serving/example/inception_client.runfiles/org_tensorflow/tensorflow/contrib/__init__.py", line 81, in <module>
        from tensorflow.contrib.eager.python import tfe as eager
      File "/serving/bazel-bin/tensorflow_serving/example/inception_client.runfiles/org_tensorflow/tensorflow/contrib/eager/python/tfe.py", line 75, in <module>
        from tensorflow.contrib.eager.python.datasets import Iterator
      File "/serving/bazel-bin/tensorflow_serving/example/inception_client.runfiles/org_tensorflow/tensorflow/contrib/eager/python/datasets.py", line 23, in <module>
        from tensorflow.contrib.data.python.ops import prefetching_ops
      File "/serving/bazel-bin/tensorflow_serving/example/inception_client.runfiles/org_tensorflow/tensorflow/contrib/data/python/ops/prefetching_ops.py", line 25, in <module>
        resource_loader.get_path_to_datafile("../../_prefetching_ops.so"))
      File "/serving/bazel-bin/tensorflow_serving/example/inception_client.runfiles/org_tensorflow/tensorflow/contrib/util/loader.py", line 55, in load_op_library
        ret = load_library.load_op_library(path)
      File "/serving/bazel-bin/tensorflow_serving/example/inception_client.runfiles/org_tensorflow/tensorflow/python/framework/load_library.py", line 56, in load_op_library
        lib_handle = py_tf.TF_LoadLibrary(library_filename, status)
      File "/serving/bazel-bin/tensorflow_serving/example/inception_client.runfiles/org_tensorflow/tensorflow/python/framework/errors_impl.py", line 473, in __exit__
        c_api.TF_GetCode(self.status.status))
    tensorflow.python.framework.errors_impl.NotFoundError: /serving/bazel-bin/tensorflow_serving/example/inception_client.runfiles/org_tensorflow/tensorflow/contrib/data/python/ops/../../_prefetching_ops.so: undefined symbol: _ZN6google8protobuf8internal26fixed_address_empty_stringB5cxx11E
    

    When I check the running log I can see that my model is running:

    
    2017-12-09 01:24:00.397485: I tensorflow_serving/model_servers/main.cc:147] Building single TensorFlow model file config:  model_name: inception model_base_path: /tmp/new5
    2017-12-09 01:24:00.397670: I tensorflow_serving/model_servers/server_core.cc:439] Adding/updating models.
    2017-12-09 01:24:00.397696: I tensorflow_serving/model_servers/server_core.cc:490]  (Re-)adding model: inception
    2017-12-09 01:24:00.498119: I tensorflow_serving/core/basic_manager.cc:705] Successfully reserved resources to load servable {name: inception version: 1}
    2017-12-09 01:24:00.498154: I tensorflow_serving/core/loader_harness.cc:66] Approving load for servable version {name: inception version: 1}
    2017-12-09 01:24:00.498169: I tensorflow_serving/core/loader_harness.cc:74] Loading servable version {name: inception version: 1}
    2017-12-09 01:24:00.498189: I external/org_tensorflow/tensorflow/contrib/session_bundle/bundle_shim.cc:360] Attempting to load native SavedModelBundle in bundle-shim from: /tmp/new5/1
    2017-12-09 01:24:00.498203: I external/org_tensorflow/tensorflow/cc/saved_model/loader.cc:236] Loading SavedModel from: /tmp/new5/1
    2017-12-09 01:24:00.623487: I external/org_tensorflow/tensorflow/core/platform/cpu_feature_guard.cc:137] Your CPU supports instructions that this TensorFlow binary was not compiled to use: AVX AVX2 FMA
    2017-12-09 01:24:00.743901: I external/org_tensorflow/tensorflow/cc/saved_model/loader.cc:155] Restoring SavedModel bundle.
    2017-12-09 01:24:00.798587: I external/org_tensorflow/tensorflow/cc/saved_model/loader.cc:190] Running LegacyInitOp on SavedModel bundle.
    2017-12-09 01:24:00.805405: I external/org_tensorflow/tensorflow/cc/saved_model/loader.cc:284] Loading SavedModel: success. Took 307196 microseconds.
    2017-12-09 01:24:00.805517: I tensorflow_serving/core/loader_harness.cc:86] Successfully loaded servable version {name: inception version: 1}
    2017-12-09 01:24:00.810840: I tensorflow_serving/model_servers/main.cc:288] Running ModelServer at 0.0.0.0:9000 ...
    
    type:performance 
    opened by jda91 52
  • Export nmt trained model to tensorflow serving

    Export nmt trained model to tensorflow serving

    I have trained nmt models, but I can not understand how to export the models to tensorflow serving. I read the documentations of MNIST and Inception, but I think these models are different with nmt models. Can you add a demo to show how to export the nmt models? This would be a great help to beginners like me, thanks!

    opened by luozhouyang 49
  • Tensorflow serving Keras model

    Tensorflow serving Keras model

    I am trying to convert my Keras graph to a TF graph.

    I managed to run the provided tensorflow_serving examples, but I'm having issues to run my custom model.

    Here is my code:

    ` import tensorflow as tf from keras import backend as K from tensorflow.contrib.session_bundle import exporter def export_model_to_tf(model): K.set_learning_phase(0) # all new operations will be in test mode from now on # serialize the model and get its weights, for quick re-building

    export_path = "./tmp" # where to save the exported graph
    export_version = "1" # version number (integer)
    
    print('Exporting trained model to %s' % export_path)
    
    saver = tf.train.Saver(sharded=True)
    with tf.Session() as sess:
        model_exporter = exporter.Exporter(saver)
    
        signature = exporter.classification_signature(input_tensor=model.input, scores_tensor=model.output)
    
        model_exporter.init(sess.graph.as_graph_def(),
                    default_graph_signature=signature)
    
        model_exporter.export(export_path, tf.constant(export_version), sess)
    

    `

    This is the error I am getting:

    root@566d926360d6:/serving# bazel-bin/tensorflow_serving/example/main ./tmp/main_model Using TensorFlow backend. Exporting trained model to ./tmp 2017-02-03 22:32:37.001202: W external/org_tensorflow/tensorflow/core/platform/cpu_feature_guard.cc:45] The TensorFlow library wasn't compiled to use SSE4.2 instructions, but these are available on your machine and could speed up CPU computations. 2017-02-03 22:32:37.001260: W external/org_tensorflow/tensorflow/core/platform/cpu_feature_guard.cc:45] The TensorFlow library wasn't compiled to use AVX instructions, but these are available on your machine and could speed up CPU computations. <tensorflow.contrib.session_bundle.exporter.Exporter object at 0x7f617023db50> Traceback (most recent call last): File "/serving/bazel-bin/tensorflow_serving/example/main.runfiles/tf_serving/tensorflow_serving/example/main.py", line 100, in main() File "/serving/bazel-bin/tensorflow_serving/example/main.runfiles/tf_serving/tensorflow_serving/example/main.py", line 98, in main save_model.export_model_to_tf(model) File "/serving/tensorflow_serving/example/save_model.py", line 25, in export_model_to_tf model_exporter.export(export_path, tf.constant(export_version), sess) File "/serving/bazel-bin/tensorflow_serving/example/main.runfiles/org_tensorflow/tensorflow/contrib/session_bundle/exporter.py", line 275, in export meta_graph_suffix=constants.EXPORT_SUFFIX_NAME) File "/serving/bazel-bin/tensorflow_serving/example/main.runfiles/org_tensorflow/tensorflow/python/training/saver.py", line 1390, in save {self.saver_def.filename_tensor_name: checkpoint_file}) File "/serving/bazel-bin/tensorflow_serving/example/main.runfiles/org_tensorflow/tensorflow/python/client/session.py", line 767, in run run_metadata_ptr) File "/serving/bazel-bin/tensorflow_serving/example/main.runfiles/org_tensorflow/tensorflow/python/client/session.py", line 965, in _run feed_dict_string, options, run_metadata) File "/serving/bazel-bin/tensorflow_serving/example/main.runfiles/org_tensorflow/tensorflow/python/client/session.py", line 1015, in _do_run target_list, options, run_metadata) File "/serving/bazel-bin/tensorflow_serving/example/main.runfiles/org_tensorflow/tensorflow/python/client/session.py", line 1035, in _do_call raise type(e)(node_def, op, message) tensorflow.python.framework.errors_impl.FailedPreconditionError: Attempting to use uninitialized value dense_1_W [[Node: save/SaveV2 = SaveV2[dtypes=[DT_FLOAT, DT_FLOAT, DT_FLOAT, DT_FLOAT], _device="/job:localhost/replica:0/task:0/cpu:0"](save/ShardedFilename, save/SaveV2/tensor_names, save/SaveV2/shape_and_slices, dense_1_W, dense_1_b, dense_2_W, dense_2_b)]]

    Caused by op u'save/SaveV2', defined at: File "/serving/bazel-bin/tensorflow_serving/example/main.runfiles/tf_serving/tensorflow_serving/example/main.py", line 100, in main() File "/serving/bazel-bin/tensorflow_serving/example/main.runfiles/tf_serving/tensorflow_serving/example/main.py", line 98, in main save_model.export_model_to_tf(model) File "/serving/tensorflow_serving/example/save_model.py", line 13, in export_model_to_tf saver = tf.train.Saver(sharded=True) File "/serving/bazel-bin/tensorflow_serving/example/main.runfiles/org_tensorflow/tensorflow/python/training/saver.py", line 1067, in init self.build() File "/serving/bazel-bin/tensorflow_serving/example/main.runfiles/org_tensorflow/tensorflow/python/training/saver.py", line 1097, in build restore_sequentially=self._restore_sequentially) File "/serving/bazel-bin/tensorflow_serving/example/main.runfiles/org_tensorflow/tensorflow/python/training/saver.py", line 685, in build save_tensor = self._AddShardedSaveOps(filename_tensor, per_device) File "/serving/bazel-bin/tensorflow_serving/example/main.runfiles/org_tensorflow/tensorflow/python/training/saver.py", line 361, in _AddShardedSaveOps return self._AddShardedSaveOpsForV2(filename_tensor, per_device) File "/serving/bazel-bin/tensorflow_serving/example/main.runfiles/org_tensorflow/tensorflow/python/training/saver.py", line 335, in _AddShardedSaveOpsForV2 sharded_saves.append(self._AddSaveOps(sharded_filename, saveables)) File "/serving/bazel-bin/tensorflow_serving/example/main.runfiles/org_tensorflow/tensorflow/python/training/saver.py", line 276, in _AddSaveOps save = self.save_op(filename_tensor, saveables) File "/serving/bazel-bin/tensorflow_serving/example/main.runfiles/org_tensorflow/tensorflow/python/training/saver.py", line 219, in save_op tensors) File "/serving/bazel-bin/tensorflow_serving/example/main.runfiles/org_tensorflow/tensorflow/python/ops/gen_io_ops.py", line 780, in save_v2 tensors=tensors, name=name) File "/serving/bazel-bin/tensorflow_serving/example/main.runfiles/org_tensorflow/tensorflow/python/framework/op_def_library.py", line 768, in apply_op op_def=op_def) File "/serving/bazel-bin/tensorflow_serving/example/main.runfiles/org_tensorflow/tensorflow/python/framework/ops.py", line 2402, in create_op original_op=self._default_original_op, op_def=op_def) File "/serving/bazel-bin/tensorflow_serving/example/main.runfiles/org_tensorflow/tensorflow/python/framework/ops.py", line 1264, in init self._traceback = _extract_stack()

    FailedPreconditionError (see above for traceback): Attempting to use uninitialized value dense_1_W [[Node: save/SaveV2 = SaveV2[dtypes=[DT_FLOAT, DT_FLOAT, DT_FLOAT, DT_FLOAT], _device="/job:localhost/replica:0/task:0/cpu:0"](save/ShardedFilename, save/SaveV2/tensor_names, save/SaveV2/shape_and_slices, dense_1_W, dense_1_b, dense_2_W, dense_2_b)]]

    Do you know what could cause the Saver to fail?

    Thanks!

    type:performance 
    opened by GeorgianaPetria 48
  • bazel GPU build error with fatal error: external/nccl_archive/src/nccl.h: No such file or directory

    bazel GPU build error with fatal error: external/nccl_archive/src/nccl.h: No such file or directory

    We are trying to build Tensorflow Serving 0.5.1 with TensorFlow 1.0.0@07bb8ea

    Basing on CUDA 7.5, cuDNN 5. Bazel 0.4.4

    cd serving && bazel build -c opt --config=cuda tensorflow_serving/...
    
    ERROR: /root/.cache/bazel/_bazel_root/f8d1071c69ea316497c31e40fe0160
    8c/external/org_tensorflow/tensorflow/contrib/nccl/BUILD:23:1: C++ c
    ompilation of rule '@org_tensorflow//tensorflow/contrib/nccl:python/
    ops/_nccl_ops.so' failed: crosstool_wrapper_driver_is_not_gcc failed
    : error executing command external/local_config_cuda/crosstool/clang
    /bin/crosstool_wrapper_driver_is_not_gcc -U_FORTIFY_SOURCE '-D_FORTI
    FY_SOURCE=1' -fstack-protector -fPIE -Wall -Wunused-but-set-paramete
    r ... (remaining 76 argument(s) skipped): com.google.devtools.build.
    lib.shell.BadExitStatusException: Process exited with status 1.
    In file included from external/org_tensorflow/tensorflow/contrib/ncc
    l/kernels/nccl_manager.cc:15:0:
    external/org_tensorflow/tensorflow/contrib/nccl/kernels/nccl_manager
    .h:23:44: fatal error: external/nccl_archive/src/nccl.h: No such fil
    e or directory
     #include "external/nccl_archive/src/nccl.h"
                                                ^
    compilation terminated.
    INFO: Elapsed time: 147.378s, Critical Path: 107.11s
    

    I'm able to find nccl.h, but it can't be found during bazel build. Any suggestions? Thanks in advanced.

    find / -name nccl.h
    /root/.cache/bazel/_bazel_root/5071e8dca1385fb776f72b33971bf157/exte
    rnal/nccl_archive/src/nccl.h
    /root/.cache/bazel/_bazel_root/f8d1071c69ea316497c31e40fe01608c/exte
    rnal/nccl_archive/src/nccl.h
    
    type:build/install 
    opened by cheyang 44
  • Tensorflow (TF) Serving on Multi-GPU box

    Tensorflow (TF) Serving on Multi-GPU box

    The issue is for a single model (not multi-model)

    1. What is the best way to serve requests from TF Serving in a multi-GPU box. TF is able to see all the GPUs but uses only one (Default Inception v3 model - from ~ 03/2016 I believe). (Is there some configuration in TF Serving that I am not aware of.)

    Is this dependent on how the model is loaded and exported?

    For inference (and not training) - Is there an example of a saved model being loaded onto multiple GPUs (with a single CPU) where the CPU splits the GPU load among multiple GPUs instead of using only one GPU.

    1. If the model is trained on a single GPU machine, when it is being used for inference in TF Serving, can it be used on a multi GPU box where all GPUs are being used?
    stat:awaiting tensorflower type:bug comp:gpu needs prio type:performance 
    opened by Immexxx 41
  • tensorflow_text support.

    tensorflow_text support.

    Are tensorflow_text ops currently fully supported by TensorFlow Serving? I have some models perfectly running using e.g. Wordpiece tokenization, but I'm failing when trying to serve this new version of the Universal Sentence Encoder due to the following error:

    2019-11-14 13:34:17.976685: W external/org_tensorflow/tensorflow/core/framework/op_kernel.cc:1655] OP_REQUIRES failed at partitioned_function_ops.cc:113 : Not found: Op type not registered 'SentencepieceOp' in binary running on 08305347fd52. Make sure the Op and Kernel are registered in the binary running in this process. Note that if you are loading a saved graph which used ops from tf.contrib, accessing (e.g.) tf.contrib.resampler should be done before importing the graph, as contrib ops are lazily registered when the module is first accessed.

    I'm experiencing this with tensorflow/serving:nightly.

    stat:awaiting tensorflower type:support 
    opened by stefanondisponibile 38
  • TFServing using only one CPU core on MKL docker image

    TFServing using only one CPU core on MKL docker image

    Hi Team,

    Recently we noticed that TFServing is using only single CPU core while testing object detection model, even though we set TENSORFLOW_SESSION_PARALLELISM=14. OMP_NUM_THREADS=56 is related to intel mkl-dnn.

    docker run \
     -p 8501:8501 \
     --name=tfserving_rfcn \
     -v "$(pwd)/rfcn:/models/rfcn" \
     -e MODEL_NAME=rfcn \
     -e OMP_NUM_THREADS=56 \
     -e TENSORFLOW_INTRA_OP_PARALLELISM=14 \
     -e TENSORFLOW_INTER_OP_PARALLELISM=14 \
     tensorflow/serving:mkl
    

    htop looks as below. image

    Is this something to do with how model script is written ? or any other configuration to do at TFServing end.?

    stat:contributions welcome type:bug type:performance 
    opened by karthikvadla 38
  • Deploying multiple models

    Deploying multiple models

    What would be the best way to load and serve multiple models into the system?

    Looking at the code that exists today, I couldn't see anything directly usable. If there's nothing that does this today, what would be a good set of things to look at to implement something like the following,

    Some thoughts,

    • Lets assume each model resided in a directory called /mnt/modelid/0000001
    • The current FileSystemStoragePathSource only looks under a given path for the aspired version. So ideally, there are some methods somewhere that can instead help look for modelid rather than within it.
    • The output of this should be a hashmap of servableId type objects, and I ought to be able to do a Get() from such an object to get the right modelId, and then run classify() on it.

    Lastly - do you guys have use cases where there are multiple models spread out across multiple machines, and using some sort of a DHT implementation to access them?

    stat:contributions welcome 
    opened by viksit 37
  • Compiling 1.8.0 version with GPU support based on nvidia/cuda:9.0-cudnn7-devel-ubuntu16.04

    Compiling 1.8.0 version with GPU support based on nvidia/cuda:9.0-cudnn7-devel-ubuntu16.04

    Hi, I use this Dockerfile

    # https://github.com/tensorflow/serving/blob/master/tensorflow_serving/tools/docker/Dockerfile.devel-gpu
    
    FROM nvidia/cuda:9.0-cudnn7-devel-ubuntu16.04
    
    RUN apt-get update && apt-get install -y \
            automake \
            bash-completion \
            build-essential \
            curl \
            git \
            g++ \
            libfreetype6-dev \
            libpng12-dev \
            libtool \
            libzmq3-dev \
            mlocate \
            pkg-config \
            python-dev \
            python-numpy \
            python-pip \
            software-properties-common \
            swig \
            unzip \
            zip \
            zlib1g-dev \
            libcurl3-dev \
            openjdk-8-jdk\
            openjdk-8-jre-headless \
            wget \
        && apt-get clean \
        && rm -rf /var/lib/apt/lists/*
    
    # Set up grpc
    RUN pip install mock grpcio
    
    # Bazel
    # required by TensorFlow
    # sudo apt-get install pkg-config zip g++ zlib1g-dev unzip python
    # https://github.com/bazelbuild/bazel/releases/
    ENV BAZEL_VERSION=0.14.1
    RUN wget https://github.com/bazelbuild/bazel/releases/download/$BAZEL_VERSION/bazel_$BAZEL_VERSION-linux-x86_64.deb \
            && dpkg -i bazel_$BAZEL_VERSION-linux-x86_64.deb \
            && rm      bazel_$BAZEL_VERSION-linux-x86_64.deb
    
    
    # Build TensorFlow with the CUDA configuration
    ENV CI_BUILD_PYTHON python
    ENV LD_LIBRARY_PATH /usr/local/cuda/extras/CUPTI/lib64:$LD_LIBRARY_PATH
    ENV TF_NEED_CUDA 1
    ENV TF_CUDA_COMPUTE_CAPABILITIES=3.0,3.5,5.2,6.0,6.1,7.0
    ENV TF_CUDA_VERSION=9.0
    ENV TF_CUDNN_VERSION=7
    
    # Fix paths so that CUDNN can be found: https://github.com/tensorflow/tensorflow/issues/8264
    
    WORKDIR /
    RUN mkdir /usr/lib/x86_64-linux-gnu/include/ && \
      ln -s /usr/lib/x86_64-linux-gnu/include/cudnn.h /usr/lib/x86_64-linux-gnu/include/cudnn.h && \
      ln -s /usr/include/cudnn.h /usr/local/cuda/include/cudnn.h && \
      ln -s /usr/lib/x86_64-linux-gnu/libcudnn.so /usr/local/cuda/lib64/libcudnn.so && \
      ln -s /usr/lib/x86_64-linux-gnu/libcudnn.so.$TF_CUDNN_VERSION /usr/local/cuda/lib64/libcudnn.so.$TF_CUDNN_VERSION
    
    
    # Fix paths so that NCCL can be found
    # https://github.com/tensorflow/serving/issues/327
    ENV TF_NCCL_VERSION=2.2.12
    RUN echo "deb http://developer.download.nvidia.com/compute/machine-learning/repos/ubuntu1604/x86_64 /" > /etc/apt/sources.list.d/nvidia-ml.list
    RUN apt-get update && apt-get install -y --no-install-recommends \
            libnccl2=${TF_NCCL_VERSION}-1+cuda${TF_CUDA_VERSION} \
            libnccl-dev=${TF_NCCL_VERSION}-1+cuda${TF_CUDA_VERSION} \
        && apt-get clean \
        && rm -rf /var/lib/apt/lists/*
    
    ENV NCCL_INSTALL_PATH=/usr/lib/nccl/
    WORKDIR /
    RUN mkdir /usr/lib/nccl && \
      mkdir /usr/lib/nccl/include/ && \
      mkdir /usr/lib/nccl/lib/ && \
      ln -s /usr/include/nccl.h /usr/lib/nccl/include/nccl.h && \
      ln -s /usr/lib/x86_64-linux-gnu/libnccl.so /usr/lib/nccl/lib/libnccl.so && \
      ln -s /usr/lib/x86_64-linux-gnu/libnccl.so.2 /usr/lib/nccl/lib/libnccl.so.2 && \
      ln -s /usr/lib/x86_64-linux-gnu/libnccl.so.$TF_NCCL_VERSION /usr/lib/nccl/lib/libnccl.so.$TF_NCCL_VERSION
    
    
    # Download, build, and install TensorFlow Serving
    ARG TF_SERVING_VERSION=1.8.0
    WORKDIR /tensorflow-serving
    
    RUN apt-get update && apt-get install -y --no-install-recommends \
           libevent-dev \
        && apt-get clean \
        && rm -rf /var/lib/apt/lists/*
    
    RUN git clone --recurse-submodules https://github.com/tensorflow/serving \
        && cd serving \
        && git checkout $TF_SERVING_VERSION \
        && bazel build --jobs 16 -c opt --config=cuda -k --verbose_failures \
            --crosstool_top=@local_config_cuda//crosstool:toolchain \
            tensorflow_serving/model_servers:tensorflow_model_server \
        && cp bazel-bin/tensorflow_serving/model_servers/tensorflow_model_server /usr/local/bin/ \
        && bazel clean --expunge \
        && cd / && rm -rf /tensorflow-serving
    

    and I hit this error:

    [4,514 / 4,517] Compiling external/org_tensorflow/tensorflow/core/kernels/tile_functor_gpu.cu.cc; 505s local
    ERROR: /tensorflow-serving/serving/tensorflow_serving/model_servers/BUILD:270:1: Couldn't build file tensorflow_serving/model_servers/tensorflow_model_server: Linking of rule '//tensorflow_serving/model_servers:tensorflow_model_server' failed (Exit 1): crosstool_wrapper_driver_is_not_gcc failed: error executing command
      (cd /root/.cache/bazel/_bazel_root/86e62be83a53cf1af5b8032777534537/execroot/tf_serving && \
      exec env - \
        LD_LIBRARY_PATH=/usr/local/cuda/extras/CUPTI/lib64:/usr/local/nvidia/lib:/usr/local/nvidia/lib64 \
        PATH=/usr/local/nvidia/bin:/usr/local/cuda/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin \
        PWD=/proc/self/cwd \
        PYTHON_BIN_PATH=/usr/bin/python \
      external/local_config_cuda/crosstool/clang/bin/crosstool_wrapper_driver_is_not_gcc -o bazel-out/k8-opt/bin/tensorflow_serving/model_servers/tensorflow_model_server '-Wl,-rpath,$ORIGIN/../../_solib_local/_U@local_Uconfig_Ucuda_S_Scuda_Ccusolver___Uexternal_Slocal_Uconfig_Ucuda_Scuda_Scuda_Slib' '-Wl,-rpath,$ORIGIN/../../_solib_local/_U@local_Uconfig_Unccl_S_S_Cnccl___Uexternal_Slocal_Uconfig_Unccl_Snccl_Slib' '-Wl,-rpath,$ORIGIN/../../_solib_local/_U@local_Uconfig_Ucuda_S_Scuda_Ccublas___Uexternal_Slocal_Uconfig_Ucuda_Scuda_Scuda_Slib' '-Wl,-rpath,$ORIGIN/../../_solib_local/_U@local_Uconfig_Ucuda_S_Scuda_Ccuda_Udriver___Uexternal_Slocal_Uconfig_Ucuda_Scuda_Scuda_Slib' '-Wl,-rpath,$ORIGIN/../../_solib_local/_U@local_Uconfig_Ucuda_S_Scuda_Ccudnn___Uexternal_Slocal_Uconfig_Ucuda_Scuda_Scuda_Slib' '-Wl,-rpath,$ORIGIN/../../_solib_local/_U@local_Uconfig_Ucuda_S_Scuda_Ccufft___Uexternal_Slocal_Uconfig_Ucuda_Scuda_Scuda_Slib' '-Wl,-rpath,$ORIGIN/../../_solib_local/_U@local_Uconfig_Ucuda_S_Scuda_Ccurand___Uexternal_Slocal_Uconfig_Ucuda_Scuda_Scuda_Slib' '-Wl,-rpath,$ORIGIN/../../_solib_local/_U@local_Uconfig_Ucuda_S_Scuda_Ccudart___Uexternal_Slocal_Uconfig_Ucuda_Scuda_Scuda_Slib' -Lbazel-out/k8-opt/bin/_solib_local/_U@local_Uconfig_Ucuda_S_Scuda_Ccusolver___Uexternal_Slocal_Uconfig_Ucuda_Scuda_Scuda_Slib -Lbazel-out/k8-opt/bin/_solib_local/_U@local_Uconfig_Unccl_S_S_Cnccl___Uexternal_Slocal_Uconfig_Unccl_Snccl_Slib -Lbazel-out/k8-opt/bin/_solib_local/_U@local_Uconfig_Ucuda_S_Scuda_Ccublas___Uexternal_Slocal_Uconfig_Ucuda_Scuda_Scuda_Slib -Lbazel-out/k8-opt/bin/_solib_local/_U@local_Uconfig_Ucuda_S_Scuda_Ccuda_Udriver___Uexternal_Slocal_Uconfig_Ucuda_Scuda_Scuda_Slib -Lbazel-out/k8-opt/bin/_solib_local/_U@local_Uconfig_Ucuda_S_Scuda_Ccudnn___Uexternal_Slocal_Uconfig_Ucuda_Scuda_Scuda_Slib -Lbazel-out/k8-opt/bin/_solib_local/_U@local_Uconfig_Ucuda_S_Scuda_Ccufft___Uexternal_Slocal_Uconfig_Ucuda_Scuda_Scuda_Slib -Lbazel-out/k8-opt/bin/_solib_local/_U@local_Uconfig_Ucuda_S_Scuda_Ccurand___Uexternal_Slocal_Uconfig_Ucuda_Scuda_Scuda_Slib -Lbazel-out/k8-opt/bin/_solib_local/_U@local_Uconfig_Ucuda_S_Scuda_Ccudart___Uexternal_Slocal_Uconfig_Ucuda_Scuda_Scuda_Slib -pthread -pthread -pthread -pthread -pthread -pthread -pthread -pthread -pthread -pthread -pthread -pthread -pthread -pthread -pthread -pthread -pthread -pthread -pthread -pthread -pthread -pthread -pthread -pthread -pthread -pthread -pthread -pthread -pthread -pthread -pthread -pthread -pthread -pthread -pthread -pthread -pthread -pthread -pthread -pthread -pthread -pthread -pthread -pthread -pthread -Wl,-z,notext -Wl,-z,muldefs -Wl,-z,notext -Wl,-z,notext -Wl,-z,notext -Wl,-z,notext -Wl,-z,notext -Wl,-z,notext -Wl,-z,notext -Wl,-z,notext -Wl,-z,notext -Wl,-z,notext -Wl,-z,notext -Wl,-z,notext -Wl,-z,notext -Wl,-z,notext -Wl,-z,notext -Wl,-z,notext -Wl,-z,notext -Wl,-z,notext -Wl,-z,notext -pthread -Wl,-rpath,../local_config_cuda/cuda/lib64 -Wl,-rpath,../local_config_cuda/cuda/extras/CUPTI/lib64 -Wl,-no-as-needed -B/usr/bin/ -pie -Wl,-z,relro,-z,now -no-canonical-prefixes -pass-exit-codes '-Wl,--build-id=md5' '-Wl,--hash-style=gnu' -Wl,--gc-sections -Wl,@bazel-out/k8-opt/bin/tensorflow_serving/model_servers/tensorflow_model_server-2.params)
    /usr/bin/ld: bazel-out/k8-opt/genfiles/external/com_github_libevent_libevent/libevent/lib/libevent.a(buffer.o): relocation R_X86_64_32 against `.rodata' can not be used when making a shared object; recompile with -fPIC
    bazel-out/k8-opt/genfiles/external/com_github_libevent_libevent/libevent/lib/libevent.a: error adding symbols: Bad value
    collect2: error: ld returned 1 exit status
    Target //tensorflow_serving/model_servers:tensorflow_model_server failed to build
    INFO: Elapsed time: 1579.845s, Critical Path: 603.27s
    INFO: 3721 processes, local.
    FAILED: Build did NOT complete successfully
    FAILED: Build did NOT complete successfully
    

    I tried to add --copt="-fPIC" to the bazel command as recommended, to no success. I tried to apt install libevent-dev beforehand, to no success. Any ideas?

    type:build/install 
    opened by frallain 34
  • Work around for

    Work around for "boringssl.googlesource.com/boringssl" ?

    Well, unfortunately, seems here we can not visit googlesource site , is there a workaround so I can bazel build tensorflow serving? I'm using tensorflow right now. Thanks

    no such package '@boringssl_git//': Error cloning repository: https://boringssl.googlesource.com/boringssl: cannot open git-upload-pack and referenced by '//external:libssl'.

    opened by chenghuige 34
  • `No module named 'tensorflow.compat` when trying to run experimental remote_predict op.

    `No module named 'tensorflow.compat` when trying to run experimental remote_predict op.

    Bug Report

    System information

    • OS Platform and Distribution (e.g., Linux Ubuntu 16.04): Ubuntu 18.04
    • TensorFlow Serving installed from (source or binary): source
    • TensorFlow Serving version: master

    Describe the problem

    Describe the problem clearly here. Be sure to convey here why it's a bug in TensorFlow Serving.

    Following README in remote predict op. The git commit and sha256 are the same as in master. I run:

    tools/run_in_docker.sh bazel run tensorflow_serving/experimental/example:half_plus_two_with_rpop -- --target_address=localhost:8500
    

    I get ModuleNotFoundError: No module named 'tensorflow.compat' in remote_predict_ops.py file. Then I try to remove compat and write everything with v2 api which gives abi issues:

    ImportError: /home/rasulkarimov/serving/.cache/_bazel_root/0bdcf8b08a5256a78e00fcc7b2c20a7c/execroot/tf_serving/bazel-out/k8-opt/bin/tensorflow_serving/experimental/example/half_plus_two_with_rpop.runfiles/org_tensorflow/tensorflow/python/../libtensorflow_framework.so.2: undefined symbol: _ZTIN10tensorflow7SessionE
    

    Is there a commit that I can checkout and reproduce the example, would appreciate it.

    Additionally I have to manually symlink libtensorflow_framework.2.11.0 to libtensorflow_framework.2.

    Source code / logs

    Include any logs or source code that would be helpful to diagnose the problem. If including tracebacks, please include the full traceback. Large logs and files should be attached. Try to provide a reproducible test case that is the bare minimum necessary to generate the problem.

    tensorflow/ops/remote_predict/python/ops/remote_predict_ops.py", line 23, in <module>
        import tensorflow.compat.v1 as tf
    ModuleNotFoundError: No module named 'tensorflow.compat'
    
    stat:awaiting response type:bug 
    opened by rrkarim 5
  • Updated Broken link for SavedModel Warmup

    Updated Broken link for SavedModel Warmup

    I have updated this broken link (https://github.com/tensorflow/serving/blob/master/tensorflow_serving/g3doc/saved_model_warmup) which was under this hyperlink (model warmup) to new hyperlink (https://github.com/tensorflow/serving/blob/master/tensorflow_serving/g3doc/saved_model_warmup.md)

    opened by gaikwadrahul8 0
  • Performance Degredation from 2.4.1 to 2.11.0

    Performance Degredation from 2.4.1 to 2.11.0

    Bug Report

    If this is a bug report, please fill out the following form in full:

    System information

    • OS Platform and Distribution (e.g., Linux Ubuntu 16.04): cloud.google.com/gke-os-distribution: cos kubernetes.io/os: linux
    • TensorFlow Serving installed from (source or binary): binary
    • TensorFlow Serving version: upgrading from 2.4.1 to 2.11.0

    Describe the problem

    I have a trained artifact of a simple neural net with semi-complex feature transformations made with tensorflow transforms. I've been running it for quite some time in 2.4.1 and recently looked into running the model with 2.11.0. With 2 different models, I've seen the image bump take the model from ~20ms p90 to >200ms as measured by the historgrams of :tensorflow:core:graph_run_time_usecs_histogram_bucket. One was trained with an earlier version and the 2nd trained with TF2.9.

    Server side batching is not enabled and cpu utilization is at 6% with no cpu throttling (container_cpu_cfs_throttled_periods_total). All configurations for running are defaults.

    In the startup logs, I see external/org_tensorflow/tensorflow/core/grappler/optimizers/loop_optimizer.cc:906] Skipping loop optimization for Merge node with control input in 2.4.1 and see no grappler log lines in 2.11.0 startup.

    Ideally, we would not see a drastic performance degradation with a minor version upgrade. I'm looking to see if there was any changes in graph execution-related code in the recent releases or what remediations are possible to achieve performance parity.

    Exact Steps to Reproduce

    Cannot provide the model, but this has happened on 2 models.

    Profiling info:

    In general it seems like in the newer version there is more time in feature preprocessing wheras previously the dense layers dominated the profile. This profile was taken from the running a TFServing instance in our cluster under typical load.

    2.11.0 top ops TensorListFromTensor StringSplitV2 PadV2 StatefulPartitionedCall RaggedTensorToTensor

    2.4.1 top ops _FusedMatMul StaticRegexReplace Mul Less StringSplitV2

    stat:awaiting tensorflower type:bug 
    opened by salliewalecka 4
  • [INTEL MKL] - Add Intel OpenMP for MKL build since it's required now

    [INTEL MKL] - Add Intel OpenMP for MKL build since it's required now

    Signed-off-by: Abolfazl Shahbazi [email protected]

    Looks like TF Serving + MKL now looks for libiomp5.so and if not found we get an error as follows:

    ERROR: /root/.cache/bazel/_bazel_root/e53bbb0b0da4e26d24b415310219b953/external/org_tensorflow/tensorflow/cc/BUILD:681:22: Executing genrule @org_tensorflow//tensorflow/cc:candidate_sampling_ops_genrule failed: (Exit 127): bash failed: error executing command 
      (cd /root/.cache/bazel/_bazel_root/e53bbb0b0da4e26d24b415310219b953/execroot/tf_serving && \
      exec env - \
        PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin \
      /bin/bash bazel-out/k8-opt/bin/external/org_tensorflow/tensorflow/cc/candidate_sampling_ops_genrule.genrule_script.sh)
    # Configuration: 165ec08304a7eacebdd9f7b599483e991b9b7887aabba1f02a76b171a0e1db4c
    # Execution platform: @local_execution_config_platform//:platform
    bazel-out/host/bin/external/org_tensorflow/tensorflow/cc/ops/candidate_sampling_ops_gen_cc: error while loading shared libraries: libiomp5.so: cannot open shared object file: No such file or directory
    ERROR: /root/.cache/bazel/_bazel_root/e53bbb0b0da4e26d24b415310219b953/external/org_tensorflow/tensorflow/cc/BUILD:681:22: Executing genrule @org_tensorflow//tensorflow/cc:nn_ops_genrule failed: (Exit 127): bash failed: error executing command 
      (cd /root/.cache/bazel/_bazel_root/e53bbb0b0da4e26d24b415310219b953/execroot/tf_serving && \
      exec env - \
        PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin \
      /bin/bash bazel-out/k8-opt/bin/external/org_tensorflow/tensorflow/cc/nn_ops_genrule.genrule_script.sh)
    # Configuration: 165ec08304a7eacebdd9f7b599483e991b9b7887aabba1f02a76b171a0e1db4c
    # Execution platform: @local_execution_config_platform//:platform
    bazel-out/host/bin/external/org_tensorflow/tensorflow/cc/ops/nn_ops_gen_cc: error while loading shared libraries: libiomp5.so: cannot open shared object file: No such file or directory
    ERROR: /root/.cache/bazel/_bazel_root/e53bbb0b0da4e26d24b415310219b953/external/org_tensorflow/tensorflow/compiler/tf2xla/cc/BUILD:9:21: Executing genrule @org_tensorflow//tensorflow/compiler/tf2xla/cc:xla_ops_gen_genrule failed: (Exit 127): bash failed: error executing command 
      (cd /root/.cache/bazel/_bazel_root/e53bbb0b0da4e26d24b415310219b953/execroot/tf_serving && \
      exec env - \
        PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin \
      /bin/bash -c 'source external/bazel_tools/tools/genrule/genrule-setup.sh; bazel-out/host/bin/external/org_tensorflow/tensorflow/compiler/tf2xla/cc/ops/xla_ops_gen_cc bazel-out/k8-opt/bin/external/org_tensorflow/tensorflow/compiler/tf2xla/cc/ops/xla_ops.h bazel-out/k8-opt/bin/external/org_tensorflow/tensorflow/compiler/tf2xla/cc/ops/xla_ops.cc 0 ,')
    # Configuration: 165ec08304a7eacebdd9f7b599483e991b9b7887aabba1f02a76b171a0e1db4c
    # Execution platform: @local_execution_config_platform//:platform
    bazel-out/host/bin/external/org_tensorflow/tensorflow/compiler/tf2xla/cc/ops/xla_ops_gen_cc: error while loading shared libraries: libiomp5.so: cannot open shared object file: No such file or directory
    

    This PR fixes that issue.

    As before to build the TensorFlow Serving with MKL please see my notes here: https://github.com/tensorflow/serving/pull/2077#issuecomment-1307535892

    opened by ashahba 1
  • Segmentation fault with tcmalloc and std memory allocators

    Segmentation fault with tcmalloc and std memory allocators

    Bug Report

    System information

    • OS Platform and Distribution (e.g., Linux Ubuntu 16.04): Ubuntu 22.04.1 LTS (running in GKE)
    • TensorFlow Serving installed from (source or binary): binary (from tensorflow/serving:2.11.0 docker image)
    • TensorFlow Serving version: 2.11.0

    Describe the problem

    When running tensorflow serving with a custom memory allocator (tcmalloc), after a period of time in the event loop (generally less than 1 minute as long as there is load) tensorflow serving will crash due to a segmentation fault.

    Similar issues (std::bad_alloc) were present in tensorflow serving starting with 2.9+ when using tcmalloc.

    The issue is not present in 2.8.3.

    Exact Steps to Reproduce

    No reproduction steps at this time.

    Source code / logs

    Here are backtraces generated when the segmentation fault occurs.

    #0  0x00007fbea81dbe93 in tcmalloc::ThreadCache::ReleaseToCentralCache(tcmalloc::ThreadCache::FreeList*, unsigned int, int) () from /usr/lib/x86_64-linux-gnu/libtcmalloc_minimal.so.4
    #1  0x00007fbea81dc1fe in tcmalloc::ThreadCache::Scavenge() () from /usr/lib/x86_64-linux-gnu/libtcmalloc_minimal.so.4
    #2  0x000055a1440aa6a2 in dnnl_primitive_desc_destroy ()
    #3  0x000055a13b8db316 in std::_Sp_counted_base<(__gnu_cxx::_Lock_policy)2>::_M_release() ()
    #4  0x000055a13ec9658e in std::_Sp_counted_ptr<dnnl::inner_product_forward::primitive_desc*, (__gnu_cxx::_Lock_policy)2>::_M_dispose() ()
    #5  0x000055a13b8db316 in std::_Sp_counted_base<(__gnu_cxx::_Lock_policy)2>::_M_release() ()
    #6  0x000055a1401d3dbb in tensorflow::MklDnnMatMulFwdPrimitive<float, float, float, float, float>::Setup(tensorflow::MklDnnMatMulFwdParams const&) ()
    #7  0x000055a1401d5b5a in tensorflow::MklDnnMatMulFwdPrimitiveFactory<float, float, float, float, float>::Get(tensorflow::MklDnnMatMulFwdParams const&, bool) ()
    #8  0x000055a1401d6e18 in tensorflow::MklFusedMatMulOp<Eigen::ThreadPoolDevice, float, true>::Compute(tensorflow::OpKernelContext*) ()
    #9  0x000055a142530ac8 in tensorflow::ThreadPoolDevice::Compute(tensorflow::OpKernel*, tensorflow::OpKernelContext*) ()
    #10 0x000055a142585820 in tensorflow::(anonymous namespace)::ExecutorState<tensorflow::SimplePropagatorState>::ProcessInline(tensorflow::SimplePropagatorState::TaggedNodeReadyQueue*, long) ()
    #11 0x000055a14258698c in tensorflow::(anonymous namespace)::ExecutorState<tensorflow::SimplePropagatorState>::Process(tensorflow::SimplePropagatorState::TaggedNode, long) ()
    #12 0x000055a148210621 in Eigen::ThreadPoolTempl<tsl::thread::EigenEnvironment>::WorkerLoop(int) ()
    #13 0x000055a14820e573 in std::_Function_handler<void (), tsl::thread::EigenEnvironment::CreateThread(std::function<void ()>)::{lambda()#1}>::_M_invoke(std::_Any_data const&) ()
    #14 0x000055a14803e8a5 in tsl::(anonymous namespace)::PThread::ThreadFn(void*) ()
    #15 0x00007fbea7cedb43 in start_thread (arg=<optimized out>) at ./nptl/pthread_create.c:442
    #16 0x00007fbea7d7fa00 in clone3 () at ../sysdeps/unix/sysv/linux/x86_64/clone3.S:81
    
    #0  0x000055640ec953aa in tensorflow::MklDnnMatMulFwdPrimitive<float, float, float, float, float>::Execute(float const*, float const*, float const*, float*, void*, std::shared_ptr<dnnl::stream>) ()
    #1  0x000055640ec9b7f5 in tensorflow::MklFusedMatMulOp<Eigen::ThreadPoolDevice, float, true>::Compute(tensorflow::OpKernelContext*) ()
    #2  0x0000556410ff4ac8 in tensorflow::ThreadPoolDevice::Compute(tensorflow::OpKernel*, tensorflow::OpKernelContext*) ()
    #3  0x0000556411049820 in tensorflow::(anonymous namespace)::ExecutorState<tensorflow::SimplePropagatorState>::ProcessInline(tensorflow::SimplePropagatorState::TaggedNodeReadyQueue*, long) ()
    #4  0x000055641104a98c in tensorflow::(anonymous namespace)::ExecutorState<tensorflow::SimplePropagatorState>::Process(tensorflow::SimplePropagatorState::TaggedNode, long) ()
    #5  0x0000556416cd4621 in Eigen::ThreadPoolTempl<tsl::thread::EigenEnvironment>::WorkerLoop(int) ()
    #6  0x0000556416cd2573 in std::_Function_handler<void (), tsl::thread::EigenEnvironment::CreateThread(std::function<void ()>)::{lambda()#1}>::_M_invoke(std::_Any_data const&) ()
    #7  0x0000556416b028a5 in tsl::(anonymous namespace)::PThread::ThreadFn(void*) ()
    #8  0x00007f04b9a8eb43 in start_thread (arg=<optimized out>) at ./nptl/pthread_create.c:442
    #9  0x00007f04b9b20a00 in clone3 () at ../sysdeps/unix/sysv/linux/x86_64/clone3.S:81
    
    #0  0x00007f2c6c1d0eeb in tcmalloc::ThreadCache::ReleaseToCentralCache(tcmalloc::ThreadCache::FreeList*, unsigned int, int) () from /usr/lib/x86_64-linux-gnu/libtcmalloc_minimal.so.4
    #1  0x00007f2c6c1d11fe in tcmalloc::ThreadCache::Scavenge() () from /usr/lib/x86_64-linux-gnu/libtcmalloc_minimal.so.4
    #2  0x000055e25aac33f6 in Eigen::internal::TensorBlockScratchAllocator<Eigen::ThreadPoolDevice>::~TensorBlockScratchAllocator() ()
    #3  0x000055e25d2f1734 in Eigen::internal::TensorExecutor<Eigen::TensorAssignOp<Eigen::TensorMap<Eigen::Tensor<float, 2, 1, long>, 16, Eigen::MakePointer>, Eigen::TensorCwiseBinaryOp<Eigen::internal::scalar_product_op<float, float>, Eigen::TensorBroadcastingOp<Eigen::IndexList<long, Eigen::type2index<1l> > const, Eigen::TensorReshapingOp<Eigen::IndexList<Eigen::type2index<1l>, long> const, Eigen::TensorMap<Eigen::Tensor<float const, 2, 1, long>, 16, Eigen::MakePointer> const> const> const, Eigen::TensorMap<Eigen::Tensor<float const, 2, 1, long>, 16, Eigen::MakePointer> const> const> const, Eigen::ThreadPoolDevice, true, (Eigen::internal::TiledEvaluation)1>::run(Eigen::TensorAssignOp<Eigen::TensorMap<Eigen::Tensor<float, 2, 1, long>, 16, Eigen::MakePointer>, Eigen::TensorCwiseBinaryOp<Eigen::internal::scalar_product_op<float, float>, Eigen::TensorBroadcastingOp<Eigen::IndexList<long, Eigen::type2index<1l> > const, Eigen::TensorReshapingOp<Eigen::IndexList<Eigen::type2index<1l>, long> const, Eigen::TensorMap<Eigen::Tensor<float const, 2, 1, long>, 16, Eigen::MakePointer> const> const> const, Eigen::TensorMap<Eigen::Tensor<float const, 2, 1, long>, 16, Eigen::MakePointer> const> const> const&, Eigen::ThreadPoolDevice const&) ()
    #4  0x000055e25d318523 in tensorflow::BinaryOp<Eigen::ThreadPoolDevice, tensorflow::functor::mul<float> >::Compute(tensorflow::OpKernelContext*) ()
    #5  0x000055e260ccaac8 in tensorflow::ThreadPoolDevice::Compute(tensorflow::OpKernel*, tensorflow::OpKernelContext*) ()
    #6  0x000055e260d1f820 in tensorflow::(anonymous namespace)::ExecutorState<tensorflow::SimplePropagatorState>::ProcessInline(tensorflow::SimplePropagatorState::TaggedNodeReadyQueue*, long) ()
    #7  0x000055e260d2098c in tensorflow::(anonymous namespace)::ExecutorState<tensorflow::SimplePropagatorState>::Process(tensorflow::SimplePropagatorState::TaggedNode, long) ()
    #8  0x000055e2669aa621 in Eigen::ThreadPoolTempl<tsl::thread::EigenEnvironment>::WorkerLoop(int) ()
    #9  0x000055e2669a8573 in std::_Function_handler<void (), tsl::thread::EigenEnvironment::CreateThread(std::function<void ()>)::{lambda()#1}>::_M_invoke(std::_Any_data const&) ()
    #10 0x000055e2667d88a5 in tsl::(anonymous namespace)::PThread::ThreadFn(void*) ()
    #11 0x00007f2c6bce2b43 in start_thread (arg=<optimized out>) at ./nptl/pthread_create.c:442
    #12 0x00007f2c6bd74a00 in clone3 () at ../sysdeps/unix/sysv/linux/x86_64/clone3.S:81
    
    #0  0x00007f40588a4ebb in tc_memalign () from /usr/lib/x86_64-linux-gnu/libtcmalloc_minimal.so.4
    #1  0x00007f40588a4fda in tc_posix_memalign () from /usr/lib/x86_64-linux-gnu/libtcmalloc_minimal.so.4
    #2  0x0000562df89f5cf4 in tsl::port::AlignedMalloc(unsigned long, int) ()
    #3  0x0000562df856d688 in tensorflow::Tensor::Tensor(tsl::Allocator*, tensorflow::DataType, tensorflow::TensorShape const&) ()
    #4  0x0000562dee05fcf8 in tensorflow::Tensor& std::vector<tensorflow::Tensor, std::allocator<tensorflow::Tensor> >::emplace_back<tensorflow::DataType, tensorflow::TensorShape>(tensorflow::DataType&&, tensorflow::TensorShape&&) ()
    #5  0x0000562df84e1972 in tensorflow::example::FastParseExample(tensorflow::example::FastParseExampleConfig const&, absl::lts_20220623::Span<tsl::tstring const>, absl::lts_20220623::Span<tsl::tstring const>, tsl::thread::ThreadPool*, tensorflow::example::Result*) ()
    #6  0x0000562dedc562a6 in tensorflow::ParseExampleOp::Compute(tensorflow::OpKernelContext*) ()
    #7  0x0000562df2d05ac8 in tensorflow::ThreadPoolDevice::Compute(tensorflow::OpKernel*, tensorflow::OpKernelContext*) ()
    #8  0x0000562df2d5a820 in tensorflow::(anonymous namespace)::ExecutorState<tensorflow::SimplePropagatorState>::ProcessInline(tensorflow::SimplePropagatorState::TaggedNodeReadyQueue*, long) ()
    #9  0x0000562df2d5b98c in tensorflow::(anonymous namespace)::ExecutorState<tensorflow::SimplePropagatorState>::Process(tensorflow::SimplePropagatorState::TaggedNode, long) ()
    #10 0x0000562df89e5621 in Eigen::ThreadPoolTempl<tsl::thread::EigenEnvironment>::WorkerLoop(int) ()
    #11 0x0000562df89e3573 in std::_Function_handler<void (), tsl::thread::EigenEnvironment::CreateThread(std::function<void ()>)::{lambda()#1}>::_M_invoke(std::_Any_data const&) ()
    #12 0x0000562df88138a5 in tsl::(anonymous namespace)::PThread::ThreadFn(void*) ()
    #13 0x00007f40583afb43 in start_thread (arg=<optimized out>) at ./nptl/pthread_create.c:442
    #14 0x00007f4058441a00 in clone3 () at ../sysdeps/unix/sysv/linux/x86_64/clone3.S:81
    
    #0  0x00007fbf95329717 in tc_newarray () from /usr/lib/x86_64-linux-gnu/libtcmalloc_minimal.so.4
    #1  0x0000562785fcf579 in std::unordered_map<int, dnnl::memory, std::hash<int>, std::equal_to<int>, std::allocator<std::pair<int const, dnnl::memory> > >& std::vector<std::unordered_map<int, dnnl::memory, std::hash<int>, std::equal_to<int>, std::allocator<std::pair<int const, dnnl::memory> > >, std::allocator<std::unordered_map<int, dnnl::memory, std::hash<int>, std::equal_to<int>, std::allocator<std::pair<int const, dnnl::memory> > > > >::emplace_back<std::unordered_map<int, dnnl::memory, std::hash<int>, std::equal_to<int>, std::allocator<std::pair<int const, dnnl::memory> > > >(std::unordered_map<int, dnnl::memory, std::hash<int>, std::equal_to<int>, std::allocator<std::pair<int const, dnnl::memory> > >&&) ()
    #2  0x0000562787a31bb6 in tensorflow::MklDnnMatMulFwdPrimitive<float, float, float, float, float>::Setup(tensorflow::MklDnnMatMulFwdParams const&) ()
    #3  0x0000562787a33b5a in tensorflow::MklDnnMatMulFwdPrimitiveFactory<float, float, float, float, float>::Get(tensorflow::MklDnnMatMulFwdParams const&, bool) ()
    #4  0x0000562787a34e18 in tensorflow::MklFusedMatMulOp<Eigen::ThreadPoolDevice, float, true>::Compute(tensorflow::OpKernelContext*) ()
    #5  0x0000562789d8eac8 in tensorflow::ThreadPoolDevice::Compute(tensorflow::OpKernel*, tensorflow::OpKernelContext*) ()
    #6  0x0000562789de3820 in tensorflow::(anonymous namespace)::ExecutorState<tensorflow::SimplePropagatorState>::ProcessInline(tensorflow::SimplePropagatorState::TaggedNodeReadyQueue*, long) ()
    #7  0x0000562789de498c in tensorflow::(anonymous namespace)::ExecutorState<tensorflow::SimplePropagatorState>::Process(tensorflow::SimplePropagatorState::TaggedNode, long) ()
    #8  0x000056278fa6e621 in Eigen::ThreadPoolTempl<tsl::thread::EigenEnvironment>::WorkerLoop(int) ()
    #9  0x000056278fa6c573 in std::_Function_handler<void (), tsl::thread::EigenEnvironment::CreateThread(std::function<void ()>)::{lambda()#1}>::_M_invoke(std::_Any_data const&) ()
    #10 0x000056278f89c8a5 in tsl::(anonymous namespace)::PThread::ThreadFn(void*) ()
    #11 0x00007fbf94e34b43 in start_thread (arg=<optimized out>) at ./nptl/pthread_create.c:442
    #12 0x00007fbf94ec6a00 in clone3 () at ../sysdeps/unix/sysv/linux/x86_64/clone3.S:81
    
    stat:awaiting response type:bug 
    opened by tomzx 4
Releases(2.11.0)
  • 2.11.0(Nov 23, 2022)

    Major Features and Improvements

    • No major features or improvements.

    Breaking Changes

    • No breaking changes.

    Bug Fixes and Other Changes

    • This release is based on TF version 2.11.0
    Source code(tar.gz)
    Source code(zip)
  • 2.10.1(Nov 22, 2022)

    Major Features and Improvements

    • No major features or improvements.

    Breaking Changes

    • No breaking changes.

    Bug Fixes and Other Changes

    • This release is based on TF version 2.10.1.
    Source code(tar.gz)
    Source code(zip)
  • 2.9.3(Nov 22, 2022)

    Major Features and Improvements

    • No major features or improvements.

    Breaking Changes

    • No breaking changes

    Bug Fixes and Other Changes

    • This release is based on TF version 2.9.3
    Source code(tar.gz)
    Source code(zip)
  • 2.8.4(Nov 23, 2022)

    Major Features and Improvements

    • No major features or improvements.

    Breaking Changes

    • No breaking changes.

    Bug Fixes and Other Changes

    • This release is based on TF version 2.8.4.
    Source code(tar.gz)
    Source code(zip)
  • 2.11.0-rc2(Nov 3, 2022)

    Release 2.11.0-rc2

    Major Features and Improvements

    • No major features or improvements.

    Breaking Changes

    • No breaking changes.

    Bug Fixes and Other Changes

    • This release is based on TF version 2.11.0-rc2
    Source code(tar.gz)
    Source code(zip)
  • 2.11.0-rc1(Oct 26, 2022)

    Release 2.11.0-rc1

    Major Features and Improvements

    • No major features or improvements.

    Breaking Changes

    • No breaking changes.

    Bug Fixes and Other Changes

    • This release is based on TF version 2.11.0-rc1
    Source code(tar.gz)
    Source code(zip)
  • 2.11.0-rc0(Oct 21, 2022)

    Release 2.11.0-rc0

    Major Features and Improvements

    • No major features or improvements.

    Breaking Changes

    • No breaking changes.

    Bug Fixes and Other Changes

    • No-op for public code. (commit: 20655b5904fdb4a810bfd8aef22db8becd4e80f3)
    • Removed net_http/client/public/* now that all the users have been migrated to test_client/ (commit: e64a73afc23ea8f9538660cb8bc20f48d5682848)
    • Fix the bug when accessing concat.tensor_data() outside its lifecycle (commit: cc3720091867c06615b8b3f50c1c2468a90e6b1c)
    • BUILD cleanup (commit: 9e81e7b1bc8e1bd28c3324cf8feee717420f96f4)
    • BUILD cleanup (commit: 8235ed86f9f07123e30ea8830a1454334bc86a2c)
    • Update TF Text to v2.8.2. (commit: 31204d664d4ff985a526dccfe1f13ffde113deb6)
    • Replace tensorflow/core/lib/core/blocking_counter in favor of the one from tensorflow/platform. (commit: 4ed7c5c30d0be43254a1177e8488675dc60d0384)
    • Update TF Text to v2.9.0. (commit: e88506ab6709f2dc3a3bb1601ac4b84c23025611)
    • Cleaning up BUILD files to remove "loose" headers. (commit: c2cd4c9629fbc868bd5e2cb186c7b081f22d709b)
    • Remove the unnecessary dependency (commit: d976a37b4e9481de5ca371ae734645d925143088)
    • Use value instead of ValueOrDie. (commit: b48e6e7cc02d8060cc3da5d363a90baf9324a2a0)
    • Update TF Text to v2.9.0. (commit: a73f2925e367106bab0bfeca187fbaa1b3f36676)
    • Replace tensorflow::Status::OK() withtensorflow::OkStatus(). (commit: 49ac8acb50291c21a0a72cfd9135aa2030e3ae88)
    • Replace tensorflow::Status::OK() withtensorflow::OkStatus(). (commit: e8be1a742c3913cbbb6158dc1202c17130583219)
    • Replace tensorflow::Status::OK() withtensorflow::OkStatus(). (commit: 88bd9d1638f6017b4af526a9b468641966d8972d)
    • Add support for TensorFlow Decision Forests models. (commit: 4592081169068a0f059be71ac1b484d568f6e5d2)
    • Remove special handling of tflite model when creating batching (commit: 2d39f8c8aa90ccfdc78faa51e4c8295832796a68)
    • Improve batching test in following ways: (commit: 68d4d3962dc40fa6c1980df6d8df51338e44301e)
    • Split proto helper function to its own util library. (commit: 01386268be6948429ea796fcd348beea4c7174d6)
    • Created net_http/public folder for shared files and updated files in net_http and model_servers/http_server.cc to match. Also removed old directories from net_http/client to make way for new client API and implementation. (commit: 8086d33b6b74899dc8062ddbdba3fcc95e9af7e5)
    • Updating a reference to Env post-refactor. (commit: 728474f92533be737958edc095abc0648a494452)
    • Replace tensorflow::Status::OK() withtensorflow::OkStatus(). (commit: 9861f7fd742dc3ec0a5e2cf0314d68b799a11e73)
    • Experimental support for per-model batching params. (commit: 94f2d6944f310069ebd527a52649fe3c001c38e3)
    • tensorflow-serving-api python package requires Python >= 3.7 (support for prior versions has been dropped). (commit: 30ea18d66416e8cfd3873fba3c2482ec68184ec6)
    • Replace tensorflow::Status::OK() with tensorflow::{Status, OkStatus}(). (commit: 6393b29242ab6648c723a51f64eb2e67ebf497db)
    • Open up http_server_clients package group for easier 3P (commit: 66b199ba6e8fc81cb278988aa541e03987a1d27d)
    Source code(tar.gz)
    Source code(zip)
  • 2.10.0(Sep 12, 2022)

    Release 2.10.0

    Major Features and Improvements

    • No major features or improvements.

    Breaking Changes

    • No breaking changes.

    Bug Fixes and Other Changes

    • This release is based on TF version 2.10.0.
    Source code(tar.gz)
    Source code(zip)
  • 2.9.2(Sep 12, 2022)

    Release 2.9.2

    Major Features and Improvements

    • No major features or improvements.

    Breaking Changes

    • No breaking changes

    Bug Fixes and Other Changes

    • This release is based on TF version 2.9.2
    Source code(tar.gz)
    Source code(zip)
  • 2.8.3(Sep 12, 2022)

    Release 2.8.3

    Major Features and Improvements

    • No major features or improvements.

    Breaking Changes

    • No breaking changes.

    Bug Fixes and Other Changes

    • This release is based on TF version 2.8.3.
    Source code(tar.gz)
    Source code(zip)
  • 2.7.4(Sep 12, 2022)

    Release 2.7.4

    Major Features and Improvements

    • No major features or improvements.

    Breaking Changes

    • No breaking changes

    Bug Fixes and Other Changes

    • This release is based on TF version 2.7.4
    Source code(tar.gz)
    Source code(zip)
  • 2.10.0-rc3(Aug 31, 2022)

    Release 2.10.0-rc3

    Major Features and Improvements

    • No major features or improvements.

    Breaking Changes

    • No breaking changes

    Bug Fixes and Other Changes

    • This release is based on TF version 2.10.0-rc3
    Source code(tar.gz)
    Source code(zip)
  • 2.10.0-rc2(Aug 24, 2022)

    Release 2.10.0-rc2

    Major Features and Improvements

    • No major features or improvements.

    Breaking Changes

    • No breaking changes

    Bug Fixes and Other Changes

    • This release is based on TF version 2.10.0-rc2
    Source code(tar.gz)
    Source code(zip)
  • 2.10.0-rc1(Aug 16, 2022)

    Release 2.10.0-rc1

    Major Features and Improvements

    • No major features or improvements.

    Breaking Changes

    • No breaking changes

    Bug Fixes and Other Changes

    • This release is based on TF version 2.10.0-rc1
    Source code(tar.gz)
    Source code(zip)
  • 2.10.0-rc0(Aug 5, 2022)

    Release 2.10.0-rc0

    Major Features and Improvements

    • No major features or improvements.

    Breaking Changes

    • No breaking changes

    Bug Fixes and Other Changes

    • tfs:aarch64: add aarch64 mkl bazel config to enable onednn+acl backend (commit: 1285e41acc707ba0d18e8eaf8a42c6d5110e8af8)
    • Match packages in devel and non-devel GPU with TF dockerfile. (commit: a8ffec79e0794650a4c0856c4122032e985296cc)
    • Validate batching params when creating the wrapped (batching) session, (commit: 48ff72dcb6582e989452ba870c88a2bb710ea0c4)
    • Merge and clean up implementations of GetModelDiskSize and GetAllDescendants in util.cc. (commit: 6da9c43c5f71abe361841fb3fd5eaad57fc847b1)
    • Parallelize iteration over child files in GetModelDiskSize (commit: d09d2efe6e9b88ef0266e5982a3e732da14dc93b)
    • Fix gpu docker build failure due to bad substitution (commit: 1d7cd5b2ba43c3d98f0c8bef6806c203b2c14592)
    • Call run_returning_status instead of run (commit: 8f9085ac678755afea6bf0067fe40a32e37ce2fa)
    • Fixing broken link for ResNet in TensorFlow. (commit: b15210ca076b11eaa2dfd0ac2fb125be780c5d40)
    • Update the TensorFlow BatchingSession metric monitoring class to be compatible with Google's internal monitoring tools. (commit: 05b944ad9367027a1082756a3069619f44955de1)
    • Increase timeout for model tests. (commit: 677ba5a07813c4fb5a2ffb4567a7ec4a137eebe6)
    • Use pb.h for topology.proto. (commit: 21fda280bc72bdbc4386c7b0d2ad4b97264921ad)
    Source code(tar.gz)
    Source code(zip)
  • 2.7.3(Aug 3, 2022)

    Major Features and Improvements

    • No major features or improvements.

    Breaking Changes

    • No breaking changes

    Bug Fixes and Other Changes

    • Update TF Text to v2.7.3 (commit: ee7892be7801a0e4ae9a6dd8b5f7bab06ae9c87c)
    • This release is based on TF version 2.7.3
    Source code(tar.gz)
    Source code(zip)
  • 2.9.1(Jul 11, 2022)

    Major Features and Improvements

    • No major features or improvements.

    Breaking Changes

    • No breaking changes

    Bug Fixes and Other Changes

    • This release is based on TF version 2.9.0
    Source code(tar.gz)
    Source code(zip)
  • 2.8.2(Jul 1, 2022)

    Major Features and Improvements

    • No major features or improvements.

    Breaking Changes

    • No breaking changes

    Bug Fixes and Other Changes

    • Replace int64 with int64_t and uint64 with uint64_t. (commit: 21360c763767823b82768ce42c5c90c0c9012601)
    • update to latest benchmark API changes (commit: 860e1013385289ad3f9eb4d854b55c23e7cb8087)
    • This release is based on TF version 2.8.2
    Source code(tar.gz)
    Source code(zip)
  • 2.6.5(Jul 1, 2022)

    Major Features and Improvements

    • No major features or improvements.

    Breaking Changes

    • No breaking changes

    Bug Fixes and Other Changes

    • Rollback incompatible C++17 changes. (commit: ba0fa72b61bc2c42388b815253ba72e6830f03cf)
    • Roll forward with std::optional -> absl::optional. (commit: 009dac683bf84165b84702d177bb9a021ebef728)
    • Replace STL algorithm call with a container method (performance-inefficient-algorithm). (commit: f5bc09998e0043ce72d34b14104379163048406c)
    • Remove unused "using" decl. (commit: ffcc4a16c76c4fa1189edd9682fc486442a33e52)
    • Move status_proto to public visible apis/ (it being used by public API protos) (commit: 7f894c79fce5e58758f3cb49e858a16e3602ae80)
    • Move core/logging.proto -> apis/logging.proto (commit: 37c64b8820a923aafc1b5c8bf264fd5cce5224f3)
    • Update TF Text to v2.5.0. (commit: 48e5a9e23a1e0b2951b77c3e8f9832193d9b1851)
    • Adding python targets for config protos (commit: 757c3a6b6c8a03731dc73ff758f69a61aeddcf67)
    • Remove experimental tags from uses of gRPC C++ callback API. (commit: b355023b034ca6ef72b507920d9de2a02e0f4a2a)
    • Add new --use_alts_credentials flag, to enable building secure credentials using Google ALTS. (commit: ceba636bb7c5c98bde35d1818fd033b36300fffe)
    • Enable HTTP PATCH support in evhttp_server (commit: 6cbc4a9eb419c8078c3a4e791381cda70dd8fc78)
    Source code(tar.gz)
    Source code(zip)
  • 2.9.0(Jun 30, 2022)

    Major Features and Improvements

    • No major features or improvements.

    Breaking Changes

    • No breaking changes

    Bug Fixes and Other Changes

    • Do not report successful loads that are cancelled, unload immediately instead. (commit: 923269955f5582cc26d0454992afa5c888a9377f)
    • Add a lock to avoid race condition on memoized_resource_estimate_. (commit: 83959e364e7ff1234bf47a5d8139677d1bdb18c1)
    • Update Resnet model used in K8S tutorial (commit: 6e76f6a9460bf2d37630f025fcfd3e06c4230fee)
    • Prepare for development of new http client API. (commit: 78e94e99650deae956fe20dffa9932a72ec7d765)
    • Integrate TPU initialization changes into TF Serving. (commit: 6549ef2136940cd98cfbb9ee0e29221d86101d16)
    • Allow max_execution_batch_size to be actually used by allowing (commit: 48a699a2fd32404c4b19f55077a1fb29112a0afe)
    • Delete batch_schedulers_ before thread_pool_name_ (commit: 2837812341e7c98be4717e5901286692a5dcc02a)
    • Add missing NVIDIA repository key. (commit: c0998e13451b9b83c9bdf157dd3648b2272dac59)
    • Bump minimum bazel version 5.1.1, to match with TF and root.workspace (commit: 8a02874cee6957e5817960613627a549bd80a6e9)
    • Update to use C++17 (commit: 7166e2efc6b7e63c908515c6a53d0e4fe8fa0aae)
    • Update tensorflow_model_server_test to depend on the pip installed tensorflow. (commit: 04b8676730a882cab61b7772097f2c23c0447ef9)
    • This release is based on TF version 2.9.0
    Source code(tar.gz)
    Source code(zip)
  • 2.8.0(Feb 11, 2022)

    Release 2.8.0

    Major Features and Improvements

    • No major features or improvements.

    Breaking Changes

    • No breaking changes

    Bug Fixes and Other Changes

    • Force-allow labels for the models which are not yet loaded. The feature is meant to be used for non-prod environments only as it may break the serving until relevant models are not loaded yet. (commit: 988bbce80038ac0b7141dcb4413124ba486344cf)
    • Update CreateRPC API interface. (commit: 2e7ca90c18f310c542ed0dcde92d676db6454285)
    • Add --tensorflow_session_config_file flag to tf serving model server to support custom SessionConfig (commit: 342a8088524c33f68e3eb4d66800f01a777ceb38)
    • Add --experimental_cc_shared_library by default to all builds. (commit: 49b138fdd4c0fb7170736193063c6f03dfb4dba4)
    • Add --num_request_iterations_for_warmup flag (fixes #1949) (commit: 2a55aec18cc1923ece84c7fcf701185306ef99b1)
    Source code(tar.gz)
    Source code(zip)
  • 2.6.3(Feb 9, 2022)

    Release 2.6.3

    Major Features and Improvements

    • No major features or improvements.

    Breaking Changes

    • No breaking changes

    Bug Fixes and Other Changes

    • This release is based on TF version 2.6.3
    Source code(tar.gz)
    Source code(zip)
  • 2.5.4(Feb 9, 2022)

    Release 2.5.4

    Major Features and Improvements

    • No major features or improvements.

    Breaking Changes

    • No breaking changes

    Bug Fixes and Other Changes

    • This release is based on TF version 2.5.3
    Source code(tar.gz)
    Source code(zip)
  • 2.8.0-rc1(Jan 25, 2022)

    Release 2.8.0-rc1

    Major Features and Improvements

    • No major features or improvements.

    Breaking Changes

    • No breaking changes

    Bug Fixes and Other Changes

    • Update version for 2.8.0-rc1 release. (commit: 90d2cec9a837ca51f6fd6ea89481cbc918174f7d)
    Source code(tar.gz)
    Source code(zip)
  • 2.8.0-rc0(Dec 23, 2021)

    Release 2.8.0-rc0

    Major Features and Improvements

    • No major features or improvements.

    Breaking Changes

    • No breaking changes

    Bug Fixes and Other Changes

    • Replace int64 with int64_t and uint64 with uint64_t. (commit: 21360c763767823b82768ce42c5c90c0c9012601)
    • Replace remaining deprecated int64 with int64_t. (commit: d34dee26cde50f6195e7aed8793c8b51a240f387)
    • update to latest benchmark API changes (commit: 860e1013385289ad3f9eb4d854b55c23e7cb8087)
    • Internal changes. (commit: 916b252d6fba3e1143c6ab6f98d9f37d6e8d4088)
    • Remove unused "using" declarations. (commit: 3e05381ee0fe790b368072e0148b35ed21d8a995)
    • Force-allow labels for the models which are not yet loaded. The feature is meant to be used for non-prod environments only as it may break the serving until relevant models are not loaded yet. (commit: 988bbce80038ac0b7141dcb4413124ba486344cf)
    • Update CreateRPC API interface. (commit: 2e7ca90c18f310c542ed0dcde92d676db6454285)
    • Update a precondition failure log message. (commit: 4f63dbf86deb2f6cd2a3d680bf6bfc7f086cfdcc)
    • Internal change. (commit: 6ece2f5af9baf33f1efb90ff35495186f0e636de)
    • Add --tensorflow_session_config_file flag to tf serving model server to support custom SessionConfig (commit: 342a8088524c33f68e3eb4d66800f01a777ceb38)
    • Add --experimental_cc_shared_library by default to all builds. (commit: 49b138fdd4c0fb7170736193063c6f03dfb4dba4)
    • Add --num_request_iterations_for_warmup flag (fixes #1949) (commit: 2a55aec18cc1923ece84c7fcf701185306ef99b1)
    • Update version for 2.8.0-rc0 release. (#1956) (commit: 297818a55a20477c035ddb2feda54c30780fab41)
    Source code(tar.gz)
    Source code(zip)
  • 2.6.2(Nov 8, 2021)

    Release 2.6.2

    Major Features and Improvements

    • No major features or improvements.

    Breaking Changes

    • No breaking changes

    Bug Fixes and Other Changes

    • This release is based on TF version 2.6.2
    Source code(tar.gz)
    Source code(zip)
  • 2.7.0(Nov 6, 2021)

    Release 2.7.0

    Major Features and Improvements

    • No major features or improvements.

    Breaking Changes

    • No breaking changes

    Bug Fixes and Other Changes

    • This release is based on TF version 2.7.0
    Source code(tar.gz)
    Source code(zip)
  • 2.6.1(Nov 4, 2021)

    Release 2.6.1

    Major Features and Improvements

    • No major features or improvements.

    Breaking Changes

    • No breaking changes

    Bug Fixes and Other Changes

    • This release is based on TF version 2.6.1
    Source code(tar.gz)
    Source code(zip)
  • 2.5.3(Nov 4, 2021)

    Release 2.5.3

    Major Features and Improvements

    • No major features or improvements.

    Breaking Changes

    • No breaking changes

    Bug Fixes and Other Changes

    • This release is based on TF version 2.5.2
    Source code(tar.gz)
    Source code(zip)
  • 2.4.4(Nov 3, 2021)

    Release 2.4.4

    TensorFlow Serving using TensorFlow 2.4.4

    Major Features and Improvements

    • No Major Features and Improvements

    Breaking Changes

    • No Breaking changes

    Bug Fixes and Other Changes

    • Improve error message when version directory is not found (commit: d687d3e8827c82f4f1b68337c67b2cbe6e4126e7)
    • Update TF Text to v2.3.0. (commit: 390732ace75ca9110c706f0aeb65d35a5390ca81)
    • Make Internal Changes (commit: d599e9513b00b0a83b7038659ba6ad9cafd18e9d)
    • Add release notes for TF Serving 2.3.0 (commit: 85a6a23e3ad2e68767b44468f9040f8085bccbb2)
    • In shared batch scheduler, rename 'max_batch_size' to 'input_batch_size_limit'. (commit: ead408b9ac1a7491ea410e59bec4b1bd91cd4a00)
    • Implement unit test for external version of remote predict op. (commit: 9d4ae676c67acb100913f0682a9332aaa3303e55)
      1. Add an example which call the Remote Predict Op directly. (commit: d5b980f487996aa1f890a559eae968735dfebf5d)
    • Update default remote model name. (commit: a069a434cfd27fc64e21bc43a11aaffd8847376b)
    • Adds user guide for Remote Predict Op (commit: fc82463d197dde52a613b1717f8705964c57178f)
    • Add support for serving regress/classify (native) TF2 models. (commit: b724ceda57b4fdc9b5bd09da231c7186435cd807)
    • Use LOG(WARNING) instead of LOG(INFO) for actual allocation problems. (commit: 4a826d0f2f2ee46d240408297616711612156ddd)
    • Make Internal Change (commit: e24c50b9599eae89af74439fcc1fc6badce036d5)
    • Move profiler services behind profiler namespace. (commit: d8faed196f40703881556a33ee86503f7a4a237e)
    • Temporarily remove sm_80 to fix gpu image build failure. (commit: 6eab5efaa1acaef452795841badaa7c8663b50e6)
    • Upgrade to CUDA Version 11.0. Build docker images on a local machine successfully with command: docker build --pull -t $USER/tensorflow-serving-devel-gpu -f Dockerfile.devel-gpu . docker build --pull -t $USER/tensorflow-serving-gpu -f Dockerfile.gpu . (commit: b291c4df771b3a6767782bdcfa086f93512ca182)
    • Internal fix on TFLite support. (commit: 23a5e8ba8a854e8dfa56eec94e48d77730ec8576)
    • Broaden net_http client visibility and use HTTPStatusCode in ClientResponse status (commit: 72927141f29d83614cf8304725b1a7e6357ce6ac)
    • Fixit: fix order dependency in batching_session_test. (commit: 0eadb8f80ed9c222ca64cc74df95af797bfd180d)
    • Update CUDNN_VERSION to 8.0.4.30. (commit: 84e0189d1b9828813125efef9ff2d541f101705a)
    • Move some utilities from batching_session to batching_util for upcoming TFRT SavedModel batching supports. (commit: 43e7cfaa39357b69d54a3a91b8696d7aed7fa7e4)
    • Temporarily disable failing test, until we root cause and fix it. (commit: aa6c5f5b6175fb17064c0afbd999da9eccae6ea3)
    • Remove deprecated flag fail_if_no_model_versions_found from tensorflow serving binary (commit: 005f0f6ad762ef11ede9d04d9a256f7967a4c31f)
    • Internal Change. (commit: a05d5245e6a9132444c7b2cf989f58ceb08527f6)
    • Update version for 2.4.0-rc2 release. (commit: 2388d4253351811d8a3b2fb924095cbf2ba53214)
    • Adds LICENSE file to tensorflow-serving-api python package. (commit: 93668685296f7ab70b8ebdc477684e808806bec9)
    • Update Dockerfile.devel (commit: e3afe78c1cf7f64b9724229817f9e31b6baf1da7)
    • Update Dockerfile.devel-gpu (commit: 5229c271116c820525cde5670e70d8a406397fb1)
    • temporary fix for 2.4.0rc2 docker image (commit: af0ddc005e136c9cc43fb9ad14a9562266ad6ed0)
    • Update Dockerfile.devel (commit: c07d0cc4117ff82a32cddd0fc9498a423d822827)
    • Update Dockerfile.devel-gpu (commit: 4dae5974a8ebf7b638dcf4f63838c76d7a5030fa)
    • Update setup.py (commit: 5b1ea00c68fa0e174de1428ecd472b562f2aed7d)
    • Update setup.py (commit: b54e566cc92d167b005753b9ec6f5700c46ab3a3)
    • Update version for 2.4.0-rc3 release. (commit: abe4ffee01a3790655126f4dd35576dd8dc46722)
    • Update version for 2.4.0-rc4 release. (commit: 16e661a66a00b7e67d10ca7a5e90cf23f04e279d)
    • Update version for 2.4.0 release. (commit: 48c4da3a31abb17dfc26b5e1edb185de5f9da5c0)
    • Update version for 2.4.1 release. (commit: 03b2bedc14e2f18aefd073f3bf885d4c33464712)
    • Make Internal Change (commit: 644baeb482741e96d2ca0a5acdc2d7d2ab038710)
    • Enable download of TF Serving sources at arbitrary commit for GPU/MKL docker images. (commit: 4725d9095919c64bb3f6c60b55bfbb103fe6a52e)
    • Fix TensorFlow serving build issue for MKL dockerfiles (commit: 424608049a5441bb8e0d8befec16b008ebda35d0)
    • Update TF Text to v2.4.3. (commit: 3bd841791b2b25f999a0ad78ccf3594000fc09ea)
    • Update version for 2.4.2 release. (commit: a6d405e771a0bd3d4349784afb3cd65a1920cb92)
    • Update version for 2.4.3 release. (commit: 9a377cdd047c970f6ded05830e2e59e4c359aaf3)
    • Update version for 2.4.4 release. (#1931) (commit: d5e1076412b414c2c61ad19174d09fc8fb43e2a6)

    Thanks to our Contributors

    This release contains contributions from many people at Google, as well as:

    Abolfazl Shahbazi, Adarshreddy Adelli

    Source code(tar.gz)
    Source code(zip)
Edge ML Library - High-performance Compute Library for On-device Machine Learning Inference

Edge ML Library (EMLL) offers optimized basic routines like general matrix multiplications (GEMM) and quantizations, to speed up machine learning (ML) inference on ARM-based devices. EMLL supports fp32, fp16 and int8 data types. EMLL accelerates on-device NMT, ASR and OCR engines of Youdao, Inc.

NetEase Youdao 180 Jan 7, 2023
Distributed (Deep) Machine Learning Community 682 Dec 28, 2022
RP-VIO: Robust Plane-based Visual-Inertial Odometry for Dynamic Environments (Code & Dataset)

RP-VIO: Robust Plane-based Visual-Inertial Odometry for Dynamic Environments RP-VIO is a monocular visual-inertial odometry (VIO) system that uses onl

Karnik Ram 167 Jan 6, 2023
Ingescape - Model-based framework for broker-free distributed software environments

Ingescape - Model-based framework for broker-free distributed software environments Overview Scope and Goals Ownership and License Dependencies with o

The ZeroMQ project 32 Jan 5, 2023
A toolkit for making real world machine learning and data analysis applications in C++

dlib C++ library Dlib is a modern C++ toolkit containing machine learning algorithms and tools for creating complex software in C++ to solve real worl

Davis E. King 11.6k Dec 31, 2022
A lightweight C++ machine learning library for embedded electronics and robotics.

Fido Fido is an lightweight, highly modular C++ machine learning library for embedded electronics and robotics. Fido is especially suited for robotic

The Fido Project 413 Dec 17, 2022
A C++ standalone library for machine learning

Flashlight: Fast, Flexible Machine Learning in C++ Quickstart | Installation | Documentation Flashlight is a fast, flexible machine learning library w

Facebook Research 4.7k Jan 8, 2023
mlpack: a scalable C++ machine learning library --

a fast, flexible machine learning library Home | Documentation | Doxygen | Community | Help | IRC Chat Download: current stable version (3.4.2) mlpack

mlpack 4.2k Dec 30, 2022
Flashlight is a C++ standalone library for machine learning

Flashlight is a fast, flexible machine learning library written entirely in C++ from the Facebook AI Research Speech team and the creators of Torch and Deep Speech.

null 4.7k Jan 8, 2023
Machine Learning Framework for Operating Systems - Brings ML to Linux kernel

Machine Learning Framework for Operating Systems - Brings ML to Linux kernel

File systems and Storage Lab (FSL) 186 Nov 24, 2022
ML++ - A library created to revitalize C++ as a machine learning front end

ML++ Machine learning is a vast and exiciting discipline, garnering attention from specialists of many fields. Unfortunately, for C++ programmers and

marc 1k Dec 31, 2022
Scalable, Portable and Distributed Gradient Boosting (GBDT, GBRT or GBM) Library, for Python, R, Java, Scala, C++ and more. Runs on single machine, Hadoop, Spark, Dask, Flink and DataFlow

eXtreme Gradient Boosting Community | Documentation | Resources | Contributors | Release Notes XGBoost is an optimized distributed gradient boosting l

Distributed (Deep) Machine Learning Community 23.6k Dec 30, 2022
Samsung Washing Machine replacing OS control unit

hacksung Samsung Washing Machine WS1702 replacing OS control unit More info at https://www.hackster.io/roni-bandini/dead-washing-machine-returns-to-li

null 27 Dec 19, 2022
Caffe: a fast open framework for deep learning.

Caffe Caffe is a deep learning framework made with expression, speed, and modularity in mind. It is developed by Berkeley AI Research (BAIR)/The Berke

Berkeley Vision and Learning Center 33k Jan 1, 2023
RNNLIB is a recurrent neural network library for sequence learning problems. Forked from Alex Graves work http://sourceforge.net/projects/rnnl/

Origin The original RNNLIB is hosted at http://sourceforge.net/projects/rnnl while this "fork" is created to repeat results for the online handwriting

Sergey Zyrianov 879 Dec 26, 2022
Frog is an integration of memory-based natural language processing (NLP) modules developed for Dutch. All NLP modules are based on Timbl, the Tilburg memory-based learning software package.

Frog - A Tagger-Lemmatizer-Morphological-Analyzer-Dependency-Parser for Dutch Copyright 2006-2020 Ko van der Sloot, Maarten van Gompel, Antal van den

Language Machines 70 Dec 14, 2022
A RGB-D SLAM system for structural scenes, which makes use of point-line-plane features and the Manhattan World assumption.

This repo proposes a RGB-D SLAM system specifically designed for structured environments and aimed at improved tracking and mapping accuracy by relying on geometric features that are extracted from the surrounding.

Yanyan Li 269 Jan 2, 2023
A flexible, high-performance serving system for machine learning models

XGBoost Serving This is a fork of TensorFlow Serving, extended with the support for XGBoost, alphaFM and alphaFM_softmax frameworks. For more informat

iQIYI 128 Nov 18, 2022
Vowpal Wabbit is a machine learning system which pushes the frontier of machine learning with techniques such as online, hashing, allreduce, reductions, learning2search, active, and interactive learning.

This is the Vowpal Wabbit fast online learning code. Why Vowpal Wabbit? Vowpal Wabbit is a machine learning system which pushes the frontier of machin

Vowpal Wabbit 8.1k Dec 30, 2022