Модели TensorFlow Keras не могут предсказывать потоки - PullRequest
0 голосов
/ 09 мая 2020

Я пытаюсь делать прогнозы с помощью модели TensorFlow Keras асинхронно. Модель работает нормально без многопроцессорности, однако, как только она вызывается с помощью mp.Process, она никогда не запускается.

import multiprocessing as mp
import tensorflow as tf
import numpy as np

def predict(data):
    a = tf.keras.Sequential([tf.keras.layers.Dense(4, input_shape=(16,))])

    return a.predict(data)

fake_data = np.zeros((100, 16))

# Works
for i in range(4):
    print(predict(fake_data).shape)

# Never finishes running
processes = []
for i in range(4):
    p = mp.Process(target=predict, args=(fake_data,))
    p.start()
    processes.append(p)

for p in processes:
    p.join()

Почему это происходит? Есть ли обходные пути / я что-то делаю не так? Я пробовал обернуть внутреннюю часть predict with tf.device('/cpu:0'), но проблема не устранена.

EDIT: проблема, похоже, возникает независимо от TF 1 или 2

...