为什么训练后的喀拉拉邦模型变得更大?

时间:2019-07-16 13:16:50

标签: python tensorflow keras deep-learning

我注意到我使用tensorflow.keras.Sequential()创建了一个模型,将其保存,文件大小约为5 MiB,但是在调用model.fit(..)之后,文件大小增加到17 MiB。我复制了模型以减小文件大小,并看到准确性是相同的。

我的问题是,fit()产生的额外12 MiB的内容到底是什么? 如何访问此类内容?如果我删除了多余的12 MiB,会影响预测准确性或任何怪异的副作用吗?

在此处查看我的实验代码:https://nbviewer.jupyter.org/github/off99555/TensorFlowExperiments/blob/master/test-save-keras-model.ipynb

1 个答案:

答案 0 :(得分:1)

答案是它是Adam优化器状态的大小。当我将优化器更改为SGD(香草优化器)时,大小不再很大。 据我所知,Adam优化器维护先前训练迭代的梯度信息。渐变大小可以与模型大小一样大。这就是为什么它导致文件太大的原因。

考虑到这一点,在保存模型时,如果您似乎使用的优化器保持类似于Adam的大状态,请确保设置include_optimizer=False

但是请注意,这意味着您无法加载模型并继续进行训练,它只能用于推断。

相关问题