Я недавно работал над проектом, который использует нейронную сеть для управления виртуальным роботом. Я использовал shadoworflow, чтобы закодировать его, и он работает плавно. До сих пор я использовал последовательные симуляции для оценки того, насколько хороша нейронная сеть, однако я хочу запустить несколько симуляций параллельно, чтобы сократить время, необходимое для получения данных.Тензор и многопроцессорность: сеансы передачи
Для этого я импортирую пакет multiprocessing
python. Первоначально я передавал переменную sess (sess=tf.Session()
) функции, которая запускала симуляцию. Однако, как только я доберусь до любого оператора, который использует эту переменную sess
, процесс завершается без предупреждения. После поиска вокруг немного я нашел эти два сообщения: Tensorflow: Passing a session to a python multiprocess и Running multiple tensorflow sessions concurrently
В то время как они сильно связаны, я не мог понять, как заставить его работать. Я попытался создать сеанс для каждого отдельного процесса и без особых усилий присвоить веса нейронной сети своим обучаемым параметрам. Я также попытался сохранить сеанс в файл, а затем загрузить его в процессе, но не повезло.
Кто-нибудь смог передать сеанс (или клоны сеансов) нескольким процессам?
Спасибо.
Я подозреваю, что вы не можете передавать клоны сеансов между процессами, потому что в адресном пространстве C есть состояние, которое Python не умеет копировать. Но создание новых сессий в каждом новом процессе должно работать. Я не использовал многопроцессорность, но у меня часто есть пара процессов, открытых параллельно, которые сохраняют свои собственные сеансы TensorFlow. –
Вторая ссылка, которую я предоставил, выполняет несколько процессов параллельно, но проблема в том, что мне нужна нейронная сеть, чтобы она была одинаковой для ВСЕ процессы. – MrRed
Возможно, вы сможете обходить его, используя распределенный TensorFlow, то есть иметь локального рабочего и ps и создавать несколько сеансов параллельно, например 'tf.Session (« grpc: // localhost: 2222 »)' https://github.com/tensorflow/tensorflow/blob/master/tensorflow/g3doc/how_tos/distributed/index.md –