[Проблема] Я хочу использовать 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)