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

时间:2016-08-01 08:24:48

标签: python multithreading tensorflow tensorflow-serving

现在我们使用TensorFlow来训练和导出模型。我们可以使用此模型实现推理服务,就像tensorflow/serving一样。

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

1 个答案:

答案 0 :(得分:14)

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

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