Я пытаюсь создать генератор многоэтапного прогнозирования временных рядов.
Идея такова: у меня есть 5 папок, и в каждой из них есть разное количество файлов. Я беру первые 3 файла как x_train, а следующие 3 как y_train. Поэтому я беру первую папку, читаю все файлы и передаю fit_generator, например:
x_train = [[[file1, file2, file3], [file7, ..., file9], [...]]]
y_train = [[[file4, file5, file6], [file10, ..., file12], [...]]]
Затем я рассматриваю следующую папку и делаю то же самое, что и раньше, пока не закончу sh все папки, чтобы я мог перейти к следующей эпохе. Простой код такой:
folders=['folder1', 'folder2', 'folder3', 'folder3', 'folder4', 'folder5']
step=3 #the step prediction
point=10 #the number of points in one file (equal for each file)
count=0
def gen(count):
while count<len(folders):
#read all files in folder=folders[count]
dim=len(all_files_in_folder)/(2*step)
#i insert the files in numpy array
x=np.random.randint(20, size=(dim, step, points))
y=np.random.randint(20, size=(dim, step, points))
yield (x,y)
count+=1
if count>=len(folders):
#if i read all folders i can pass to the next epoch, so i reset the counter
count=0
model=Sequential()
model.add(Dense(points, input_shape=(step, points)))
model.add(ELU(0.3))
model.add(Dense(points))
model.add(ELU(0.3))
model.summary()
model.compile(loss='mse', optimizer='adam')
history=model.fit_generator(generator=gen(count), steps_per_epoch=len(folders), epochs=2, shuffle=True)
Я понимаю, что это не правильно, как я могу исправить? Спасибо за ваш ответ:)