在推理服务中使用 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()
,以防止意外内存泄漏。
现在我们已经使用TensorFlow训练并导出了一个模型。我们可以像 tensorflow/serving
那样用这个模型实现推理服务。
我对 tf.Session
对象是否线程安全有疑问。如果是的话,我们可以在启动后初始化对象,使用单例对象来处理并发请求。
tf.Session
对象对于来自多个线程的 Session.run()
调用是线程安全的。
在 TensorFlow 0.10 之前图形修改不是线程安全的。这在 0.10 版本中已修复,因此您可以在 Session.run()
调用的同时向图中添加节点,但出于性能原因不建议这样做;相反,建议在使用多线程会话之前调用 sess.graph.finalize()
,以防止意外内存泄漏。