加载 TensorFlow 后分叉 python 进程

MBZ*_*MBZ 4 python fork tensorflow

tf.Session()fork不安全的,这意味着在将进程TensorFlow加载到内存中后,系统的行为是未知的。

是否有任何解决方法可以在多个进程之间共享多个设备(在一台机器上)?

mrr*_*rry 5

在多个进程之间共享 TensorFlow 运行时的标准方法是使用分布式 TensorFlow 支持,它也适用于单台机器。

在一个进程中,您可以通过运行以下代码来启动服务器:

import tensorflow as tf
server = tf.train.Server.create_local_server()
print server.target  # for other processes to connect
server.join()
Run Code Online (Sandbox Code Playgroud)

默认情况下,此进程将拥有机器上的所有设备。

在其他进程中,您可以创建tf.Session连接到服务器的对象:

sess = tf.Session("grpc://localhost:...")  # Use value of `server.target`.
Run Code Online (Sandbox Code Playgroud)

这些会话可以像进程内会话一样使用。