Генератор пользовательских данных для LSTM - PullRequest
0 голосов
/ 17 марта 2019

Набор данных: у меня есть несколько файлов .csv с формой (количество сэмплов, 60 200), где количество сэмплов может варьироваться.

Модель LSTM: у меня есть модель LSTM, принимающая ввод формы (60 200) Я пытаюсь сделать генератор данных для извлечения данных из этих файлов .csv и передачи в LSTM.

Но я получаю сообщение об ошибке значения: ни одно из значений не поддерживается.

Я получаю трехмерные массивы формы (размер партии 60 200). В чем может быть возможная ошибка
Я вызываю функцию следующим образом:

model.fit_generator(gen_train,steps_per_epoch=739, validation_data=(gen_val), validation_steps=44,epochs=50)

, где 739 - это число файлов .csv для моих данных обучения, а 44 - это число .csv для данных проверки.

Код для генератора данных выглядит следующим образом:

занимает время имен входных файлов, метка. Каждый файл имеет разные нет. образцов, поэтому я добавляю оставшиеся образцы <32 предыдущего файла с новым на каждой итерации. </h1> def data_gen(time,label): print("in data generator") batch_size = 32 temp_time=np.empty((0,60,200)) temp_label=np.empty((0,1)) while True: for j in range(len(time)): time_arr=np.loadtxt(time[j]) time_arr=time_arr.reshape(-1,60,200) label_arr=np.loadtxt(label[j]) label_arr=label_arr.reshape((-1,1)) temp_time=np.vstack((temp_time,time_arr)) temp_label=np.vstack((temp_label,label_arr)) l=len(temp_time) i=0 while(l>32): yield (temp_time[i:i+32], temp_label[i:i+32]) i=i+32 l=l-32 temp_time=temp_time[i:i+l] temp_label=temp_label[i:i+l]

...