Keras 中的弹性权重合并算法实现
Posted
技术标签:
【中文标题】Keras 中的弹性权重合并算法实现【英文标题】:Elastic Weight Consolidation Algorithm Implementation in Keras 【发布时间】:2020-09-29 09:17:35 【问题描述】:我正在研究基于 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 上看到了这个paper。是的,我将在增量训练中获得完全不同的日志文件,因此目前正在发生灾难性的遗忘。我在互联网上查看,只发现它的 pytorch 和 tensorflow 实现。我对它们不是很流利,我正在寻找一些相同的 tensorflow-2/keras 实现。我确实了解该论文,但不了解如何实施它。是否有可能在 keras 中做,如果是的话怎么做?欢迎任何其他简单的持续学习方法!
【问题讨论】:
你能不能参考Continual Learning with Elastic Weight Consolidation in TensorFlow 2 可以帮助你。谢谢! 看起来不错,虽然我的项目是 6 个多月前的,但谢谢,会检查 【参考方案1】:我最近想在分布式优化设置中应用相同的算法 (EWC)。我找不到 tensorflow-2 实现。所以我从头开始实现它。你可以在这里找到它 - https://github.com/stijani/elastic-weight-consolidation-tf2.git。 包含一个演示笔记本,用于演示代码用法和 MNIST 数据集的示例结果。
【讨论】:
以上是关于Keras 中的弹性权重合并算法实现的主要内容,如果未能解决你的问题,请参考以下文章