我注意到我使用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
答案 0 :(得分:1)
答案是它是Adam优化器状态的大小。当我将优化器更改为SGD(香草优化器)时,大小不再很大。 据我所知,Adam优化器维护先前训练迭代的梯度信息。渐变大小可以与模型大小一样大。这就是为什么它导致文件太大的原因。
考虑到这一点,在保存模型时,如果您似乎使用的优化器保持类似于Adam的大状态,请确保设置include_optimizer=False
。
但是请注意,这意味着您无法加载模型并继续进行训练,它只能用于推断。