keras.utils.Sequence не работает так, как я хочу, когда я использую Forex_Generator - PullRequest
0 голосов
/ 30 апреля 2019

Моя модель ожидает получения двух входных массивов при прогнозировании.(значение, метка)

    train_model = models.Model(inputs=[x, y], outputs=[out_seg, shared_decoder(masked_by_y, conv_cap_2_1, x )]) # [x:image,y: mask] // [out_seg:length, reconstruction output]

Итак, я создал следующий класс, используя Sequence.

class No_decoder_sequence(keras.utils.Sequence):
 def __init__(self, x_set, y_set, batch_size):
    self.x, self.y = x_set, y_set
    self.batch_size = batch_size

 def __len__(self):
    return int(np.ceil(len(self.x) / float(self.batch_size)))

 def __getitem__(self, idx):
    batch_x = self.x[idx * self.batch_size:(idx + 1) * self.batch_size]
    batch_x = np.expand_dims(batch_x ,-1)
    batch_y = self.y[idx * self.batch_size:(idx + 1) * self.batch_size]

    return np.array(batch_x), np.array(batch_y)

Однако возникает ошибка, когда я пытаюсь использовать класс для прогнозирования следующим образом:

 no_decoder_generator_1 = No_decoder_sequence(X_val_1, y_val_1, batch_size=1)
 y_predict_1, x_predict_1 = model.predict_generator(generator=no_decoder_generator_1, steps=len(X_val_1))
 y_predict_1 = np.asarray(y_predict_1)
 x_predict_1 = np.asarray(x_predict_1)  

ValueError: Ошибка при проверке ввода модели: список массивов Numpy, передаваемых в вашу модель, не соответствует размеру, ожидаемому моделью.Ожидается увидеть 2 массива (ов), но вместо этого получен следующий список из 1 массива: [массив ([[[[0.9287956],.

) Почему мой No_decoder_sequence возвращает только одно значение массива?

enter image description here

А как проверить, возвращает ли последовательность значений класса?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...