我想用cano-multiprocessing與神經網絡庫Keras使用theano。使用multianocessing與theano
我使用device=gpu
標誌並加載keras模型。然後,爲了提取超過一百萬圖像的功能,即時通訊使用多處理池。
功能看起來是這樣的:
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內存池和我的代碼失敗,內存錯誤。是否有可能強制多處理在CPU內存中創建線程,然後使用特定部分進行特徵提取,例如帶GPU的f([im, 0])[0][0]
?
如果沒有,是否有替代方案在python中並行執行相同的操作?