python - ConvLstm ucf101 到 hmdb51 的迁移学习
问题描述
我已经在 ucf 101 数据集上训练了我的 cnn-lstm。现在我想在 hmdb-51 数据集上仅在最后一个 Dense 层上对其进行训练,a 对其余层使用预先保留的 ucf-101 模型权重。我怎样才能做到这一点??
解决方案
可以做的是使用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
推荐阅读
- python - C++ pybind11嵌入式解释器:调用python函数导致应用程序退出?
- r - R 情感分析零长度不为空错误消息
- flutter - 如何停止溢出
- azure-data-factory-2 - 从 ADF 中的获取元数据获取文件结构
- geoserver - 使用 Geofence Geoserver 扩展验证 WMS/WFS 请求
- flutter - ListTile 的 tileColor 和 selectedTileColor 在 Flutter / Dart 中不起作用
- typescript - 如何根据作为参数的数组推断记录键
- git - Neovim 中的 :GCheckout 和 :checkhealth 在分支名称旁边吐出乱码
- swift - 使用查询从 firebase 获取新评论
- r - 将未来的进展或从承诺传回主流程?