2017-11-06 5 views
3

내가 보거나 쓴 Keras 코드는 교육 중 배치 크기 (예 : 32, 64, 128 ...)가 고정되어 있습니다. 동적 배치 크기를 가질 수 있는지 궁금합니다. (예 : 첫 번째 반복에서 104, 다음 반복에서 82, 다음에서 95 등)keras에서 동적 배치 크기를 가질 수 있습니까?

현재 텐 토류 흐름 백엔드를 사용하고 있습니다.

답변

3

당신이 루프와 훈련을 맞춰 훈련 할 수 있습니다. 예

from random import shuffle  

dataSlices = [(0,104),(104,186),(186,218)] 

for epochs in range(0,10): 
    shuffle(dataSlices) 
    for i in dataSlices: 
     x,y = X[i[0]:i[1],:],Y[i[0]:i[1],:] 
     model.fit(x,y,epochs=1,batchsize=x.shape[0]) 
     #OR as suggest by Daniel Moller 
     #model.train_on_batch(x,y) 

이것은 데이터가 2 차원 배열이라고 가정합니다. 이 아이디어를 더 확장하여 for 루프가있는 곳에서 fit_generator()을 사용하도록 선택할 수 있습니다 (docs 참조).

+1

이 답변으로 질문에 대한 답변을 충분히 얻을 수 있습니까? – DJK

+2

'fit' 대신에'train_on_batch'를 사용할 수 있습니다. (이로 인해 약간의 오버 헤드가 제거 될 수 있습니다). –

+0

감사합니다, djk47463 및 Daniel Möller! 도움이됩니다. – user3377018

관련 문제