Как передать два входа в x модели.fit и ничего для y с данными TFRecord? - PullRequest
0 голосов
/ 13 февраля 2020

[Проблема] Я хочу использовать model.fit для обучения моей модели и иметь 2 входа, которые являются данными TFRecord. У меня нет y (метка) и использовать model.add_loss(input, predict) для получения моей потери. Когда я начинаю обучение, возникает ошибка:

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

Я пытаюсь использовать этот код model.fit(x=dataset, y=None, epochs=EPOCH) Я не знаю, как только передавая два значения в x и ничего в y. Надеюсь, кто-то может научить меня, где я ошибаюсь. dataset имеет тип tf.data.TFRecordDataset, содержит 2 входа (изображение, K).

Ниже показан фрагмент кода

def build_dataloader(self):
    tfrecord_file = self.dataset_dir + '/%s.tfrecords' % self.split
    raw_dataset = tf.data.TFRecordDataset(tfrecord_file)  
    dataset = raw_dataset.map(self._parse_example, num_parallel_calls=tf.data.experimental.AUTOTUNE)
    ...
    return dataset
def Flow_net(input_shape):
    inputs = tf.keras.Input(shape=input_shape, name='inputs')
    cam = tf.keras.Input(shape=[3, 3], name='cam')
    ...
    model = tf.keras.Model(inputs=[inputs, cam], 
                           outputs=predict_flow, 
                           name='flow_net')
    model.add_loss(get_flow_loss(inputs, predict_flow))
model = Flow_net(input_shape=[IMG_HEIGHT, IMG_WIDTH, 9])
model.compile(optimizer=tf.keras.optimizers.Adam(learning_rate=1e-4), loss=None)
model.fit(x=dataset, y=None, epochs=EPOCH)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...