Использование TensorFlow вместе с пулом параллельных процессов
Мы интегрируем TensorFlow в более крупное приложение. Одним из требований является то, что мы можем загружать и выполнять существующие модели с диска и запускать их в главном потоке. Обучение может выполняться асинхронно в другом потоке.
Если мы выполняем что-то в TF в дочернем потоке перед основным потоком, тензор потока работает нормально.
Если мы запускаем что-то в TF в основном потоке перед дочерним потоком, тензор потока зависает.
from concurrent.futures import ProcessPoolExecutor as ProcessPool
def calculate_something():
import tensorflow as tf
with tf.Session() as sess:
a = tf.constant(2)
b = tf.constant(3)
print("a=2, b=3")
print("Addition with constants: %i" % sess.run(a+b))
print("Multiplication with constants: %i" % sess.run(a*b))
calculate_something()
pool = ProcessPool(1)
pool.submit(calculate_something)
Я что-то здесь не так делаю? Я открываю новую сессию в каждом потоке, поэтому думаю, что этого будет достаточно.
Любая помощь приветствуется!
Jos