신경 네트워크 라이브러리 인 Keras를 사용하여 thecano-multiprocessing과 함께 theano를 사용하려고합니다.theano와 멀티 프로세싱 사용
나는 device=gpu
플래그를 사용하고 케라 모델을로드합니다. 그런 다음 다중 이미지 풀을 사용하여 100 만 개가 넘는 이미지를 추출합니다.
기능은 다음과 같이 보입니다 :
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]
과 같은 특정 기능 추출을 위해 멀티 프로세싱을 강제 할 수 있습니까?
그렇지 않다면, 파이썬에서 같은 일을하는 대안이 있습니까?