Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Is it thread-safe when using tf.Session in inference service?

Now we have used TensorFlow to train and export an model. We can implement the inference service with this model just like how tensorflow/serving does.

I have a question about whether the tf.Session object is thread-safe or not. If it's true, we may initialize the object after starting and use the singleton object to process the concurrent requests.

like image 716
tobe Avatar asked Aug 01 '16 08:08

tobe


People also ask

Is TensorFlow thread safe?

As we have seen, the TensorFlow Session object is multithreaded and thread-safe, so multiple threads can easily use the same session and run ops in parallel.

Is TensorFlow multithreaded?

The TensorFlow Session object is multithreaded, so multiple threads can easily use the same session and run ops in parallel.

What is the use of TF session?

A session allows to execute graphs or part of graphs. It allocates resources (on one or more machines) for that and holds the actual values of intermediate results and variables.

How do TensorFlow sessions work?

TensorFlow Session is a session object which encapsulates the environment in which Operation objects are executed, and data objects are evaluated. TensorFlow requires a session to execute an operation and retrieve its calculated value. A session may own several resources, for example, tf. QueueBase, tf.


1 Answers

The tf.Session object is thread-safe for Session.run() calls from multiple threads.

Before TensorFlow 0.10 graph modification was not thread-safe. This was fixed in the 0.10 release, so you can add nodes to the graph concurrently with Session.run() calls, although this is not advised for performance reasons; instead, it is recommended to call sess.graph.finalize() before using the session from multiple threads, to prevent accidental memory leaks.

like image 157
mrry Avatar answered Sep 25 '22 00:09

mrry