首页 > 解决方案 > ConvLstm ucf101 到 hmdb51 的迁移学习

问题描述

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

标签: pythonkerasdeep-learningconv-neural-networktransfer-learning

解决方案


可以做的是使用dataset A包含 L 个目标输出层的源来训练模型。训练完权重后,您可以加载权重以移除最后一层,例如,使用 Kerasmodel.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

推荐阅读