Ответ 1
В своих моделях fit_generator()
имеет метод fit_generator()
. Он принимает питон generator
или keras Sequence
в качестве входных данных.
Вы можете создать простой генератор следующим образом:
fileList = listOfFiles
def imageLoader(files, batch_size):
L = len(files)
#this line is just to make the generator infinite, keras needs that
while True:
batch_start = 0
batch_end = batch_size
while batch_start < L:
limit = min(batch_end, L)
X = someMethodToLoadImages(files[batch_start:limit])
Y = someMethodToLoadTargets(files[batch_start:limit])
yield (X,Y) #a tuple with two numpy arrays with batch_size samples
batch_start += batch_size
batch_end += batch_size
И подойдет вот так:
model.fit_generator(imageLoader(fileList,batch_size),steps_per_epoch=..., epochs=..., ...)
Обычно вы передаете steps_per_epoch
количество партий, которые вы будете брать из генератора.
Вы также можете реализовать свою собственную последовательность Keras. Это немного больше работы, но они рекомендуют использовать это, если вы собираетесь делать многопоточную обработку.