Я пытаюсь использовать theano с процессором cpu-multiprocessing с помощью библиотеки нейронных сетей Keras.с использованием многопроцессорной обработки с помощью anano
Я использую флаг device=gpu
и загружаю модель keras. Затем для извлечения функций для более миллиона изображений, im используя многопроцессорный пул.
функция выглядит примерно так:
from keras import backend as K
f = K.function([model.layers[0].input, K.learning_phase()], [model.layers[-3].output,])
def feature_gen(flz):
im = imread(flz)
cPickle.dump(f([im, 0])[0][0], open(flz, 'wb'), -1)
pool = mp.Pool(processes=10)
results = [pool.apply_async(feature_gen, args=(f,)) for f in filelist]]
Это, однако, начинает создавать пулы в памяти GPU и мой код с ошибкой памяти. Можно ли заставить многопроцессорность создавать потоки в памяти процессора, а затем использовать определенные части для извлечения функции, такие как f([im, 0])[0][0]
с графическим процессором?
Если нет, есть ли альтернатива делать то же самое параллельно в python?