分布式Tensorflow代码使用大量线程

时间:2018-09-19 22:01:06

标签: python tensorflow deep-learning grpc reinforcement-learning

我正在运行16个工作程序和一个参数服务器(通过运行subprocess.Popen启动),以便执行我自己的A3C算法实现。我的代码使用tf.train.Servertf.train.MonitoredTrainingSession进行通信。

我希望每个进程有1个线程用于从强化学习环境中收集经验,有些进程则用于GRPC,但实际上每个进程在运行算法的集群上都有138或139个线程。我猜这取决于计算机,因为在我的笔记本电脑上,我唯一有47个或48个线程/进程。

我的tf.train.Server配置如下:

self.server = tf.train.Server( cluster, job_name="worker", task_index=task_id, config=tf.ConfigProto(intra_op_parallelism_threads=1, inter_op_parallelism_threads=2) )

htop中,我看到命令名称为pythongrpc_executorgrpc_global_tim

这个问题是GRPC或分布式Tensorflow的工作方式固有的,还是我的代码有问题?

我正在使用Tensorflow 1.8.0版。

0 个答案:

没有答案