python - Keras 中的弹性权重合并算法实现
问题描述
我正在研究基于 LSTM 的模型来预测日志异常。我的模型架构如下所示:
______________________Layer (type) Output Shape Param # =================================================================
lstm (LSTM) (None, 5, 1555) 9684540 ______________________
lstm_1 (LSTM) (None, 1555) 19350420 ______________________
dense (Dense) (None, 1024) 1593344 ______________________
dense_1 (Dense) (None, 1024) 1049600 _______________________
dense_2 (Dense) (None, 1555) 1593875
=================================================================
Total params: 33,271,779
我想继续训练避免灾难性遗忘,我在 EWC 上看到了这篇论文。是的,我将在增量训练中获得完全不同的日志文件,因此目前正在发生灾难性的遗忘。我在互联网上查看,只发现它的 pytorch 和 tensorflow 实现。我对它们不是很流利,我正在寻找一些相同的 tensorflow-2/keras 实现。我确实了解该论文,但不了解如何实施它。是否有可能在 keras 中做,如果是的话怎么做?欢迎任何其他简单的持续学习方法!
解决方案
我最近想在分布式优化设置中应用相同的算法(EWC)。我找不到 tensorflow-2 实现。所以我从头开始实现它。你可以在这里找到它 - https://github.com/stijani/elastic-weight-consolidation-tf2.git。包含一个演示笔记本,用于演示代码用法和 MNIST 数据集的示例结果。
推荐阅读
- json - Angular9字符串到数组
- javascript - 从 MySQL 中提取的 BCRYPT 问题
- spring - 服务器收到额外不需要的数据时的 REST API 响应
- c++ - 为什么它给我一个错误。它是未知的 C++
- keycloak - keycloak 为前端和后端提供不同的发行者
- android - 在不同时间在一个图像视图中进行多点触控 Android Studio
- laravel - Vue Laravel:角色、权限和用户管理
- javascript - if 语句在两个 for 循环内不返回任何内容
- node.js - 为什么我用mongoose将它保存在mongoDB中后无法获取数据库中的记录?
- python - 使用 selenium单击带有标签的元素