Keras fit_generator:模型是否也使用 validation_data 学习?
Keras fit_generator: does model learn with validation_data as well?
我创建了一个使用 fit_generator 和 validation_data 的 UNET,如下所示:
model.fit_generator(train_gen,
validation_data=valid_gen,
steps_per_epoch=train_steps,
validation_steps=valid_steps,
epochs=epochs)
我想知道:在不同的 Epoch 中,keras 模型是否也在 运行 验证数据时学习?
我怀疑它不会,毕竟如果它确实存在,val_acc 将不会成为几个时期内有价值的性能指标。但是我无法在任何地方找到我的猜测的确认。
想法?
其他详情:
正如人们所预料的那样,我的代码中的 valid_gen 和 train_gen 是使用不同的数据集创建的,之前通过拆分数据库定义:
train_gen = DataGen(train_list, path_general, image_size=image_size, batch_size=batch_size)
valid_gen = DataGen(valid_list, path_general, batch_size=batch_size, image_size=image_size)
你是对的。验证数据仅 运行 在每个 epoch 结束时通过模型前向传播(即无反向传播),以评估模型的泛化性能。正如您所说,如果模型从验证数据中学习,它将完全破坏其泛化测试的有效性。
我创建了一个使用 fit_generator 和 validation_data 的 UNET,如下所示:
model.fit_generator(train_gen,
validation_data=valid_gen,
steps_per_epoch=train_steps,
validation_steps=valid_steps,
epochs=epochs)
我想知道:在不同的 Epoch 中,keras 模型是否也在 运行 验证数据时学习? 我怀疑它不会,毕竟如果它确实存在,val_acc 将不会成为几个时期内有价值的性能指标。但是我无法在任何地方找到我的猜测的确认。 想法?
其他详情: 正如人们所预料的那样,我的代码中的 valid_gen 和 train_gen 是使用不同的数据集创建的,之前通过拆分数据库定义:
train_gen = DataGen(train_list, path_general, image_size=image_size, batch_size=batch_size)
valid_gen = DataGen(valid_list, path_general, batch_size=batch_size, image_size=image_size)
你是对的。验证数据仅 运行 在每个 epoch 结束时通过模型前向传播(即无反向传播),以评估模型的泛化性能。正如您所说,如果模型从验证数据中学习,它将完全破坏其泛化测试的有效性。