在推理服务中使用 tf.Session 时它是线程安全的吗?

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

现在我们已经使用TensorFlow训练并导出了一个模型。我们可以像 tensorflow/serving 那样用这个模型实现推理服务。

我对 tf.Session 对象是否线程安全有疑问。如果是的话,我们可以在启动后初始化对象,使用单例对象来处理并发请求。

tf.Session 对象对于来自多个线程的 Session.run() 调用是线程安全的。

在 TensorFlow 0.10 之前图形修改不是线程安全的。这在 0.10 版本中已修复,因此您可以在 Session.run() 调用的同时向图中添加节点,但出于性能原因不建议这样做;相反,建议在使用多线程会话之前调用 sess.graph.finalize(),以防止意外内存泄漏。