【发布时间】:2017-10-11 20:59:17
【问题描述】:
我正在 Keras 中构建一个带有注意力的 LSTM 模型,用于多标签分类,但有数千个可能的输出标签,每个标签都有自己的 sigmoid 预测层和独特的注意力 MLP 层。这么大的模型能训练和保存吗?我收到以下 h5py RuntimeError: Unable to create attribute (Object header message is too large)。
【问题讨论】:
-
需要分批生成数据,分批训练。为了保存模型,只保存最佳权重,而不是整个模型
-
你尝试了什么?
-
我尝试使用 train_on_batch() 批量训练并使用 model.to_json() 和 model.save_weights() 保存模型,但它无法保存完整模型的权重。只保存最佳权重是什么意思?
-
您的问题是关于大型模型,对吗?即,具有数十万个连接的模型?批量训练只对大型数据集有帮助,对大型模型没有帮助。我也遇到了同样的问题,训练一个具有极宽层(每层 100,000 多个节点)的多层 LSTM 网络。你找到解决办法了吗?
-
是的,我问的是大型模型,而不是大型数据集,但遗憾的是还没有找到解决方案。请让我知道你发现了什么!我的下一个想法是将模型分成数千个不同的模型,每个模型都有自己的注意力机制,但我们可能没有足够的数据来分别训练每个模型,这就是为什么我还没有尝试过。
标签: python deep-learning keras