Я использую 16 рабочих и сервер параметров (запущен с запуска subprocess.Popen
), чтобы выполнить собственную реализацию алгоритма A3C.Мой код использует tf.train.Server
и tf.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
я вижу имена команд python
, grpc_executor
и grpc_global_tim
.
Эта проблема присуща тому, как GRPC или распределенный Tensorflow работает или можетчто-то не так с моим кодом?
Я использую Tensorflow версии 1.8.0.