【问题标题】:Transfer learning for ConvLstm ucf101 to hmdb51ConvLstm ucf101 到 hmdb51 的迁移学习
【发布时间】:2024-01-07 10:52:01
【问题描述】:

我已经在 ucf 101 数据集上训练了我的 cnn-lstm。现在我想在 hmdb-51 数据集上仅在最后一个 Dense 层上对其进行训练,a 对其余层使用预先保留的 ucf-101 模型权重。 我该怎么做??

【问题讨论】:

  • 你能解释一下你已经尝试过什么吗?
  • 您可以使用一个数据集进行训练,使用 model.pop() 删除最后一层并将其替换为新数据集的目标并再次训练。
  • 此外,我同意@luistm 的观点,即您应该添加更多信息并解释您已经完成的工作。
  • 我已经训练了我的模型 ucf 101 数据集,现在我需要在 hmdb51 上训练最后一层

标签: python keras deep-learning conv-neural-network transfer-learning


【解决方案1】:

可以做的是使用包含 L 个目标输出层的源 dataset A 来训练您的模型。训练完权重后,您可以加载权重删除最后一层,例如,使用 Keras model.pop() 函数并使用新目标训练最后一层。以下代码未经测试,但需要遵循逻辑:

model = Model_A()
model.compile(....)
model.fit(X_train_A, y_train_A, nb_epoch=..., batch_size=...,...)
# you load model_A which is defined for your dataset A and then you perform fit with the data from dataset A.
model.pop()
model.add(Dense(nb_classes_dataset_B))
# then proceed with model.fit() for dataset B

【讨论】: