我正在使用tensorflow框架,我注意到tensorflow模型文件的大小存在很大差异。
例如,框架提供了2个模型:
它们的大小均为172.539 kb
当我在模型中应用微调时,图中有一些小的变化(框架中有一个模块)并保存我的模型,大小基本保持不变:{{1} }。
首先,我有点惊讶我的微调模型有点大,因为我将最后一层从21级更改为14级,所以我希望模型文件大小稍微小一点,但由于差异很小,所以我没有'请注意。
但是,当我使用相同的模型文件(我预先训练的那个)训练相同的模型并将模型保存在磁盘中时,文件大小完全不同:178.525 kb
。通过术语 train 我的意思是我允许网络修改所有参数而不仅仅是最后一层的参数。
正在实施的模型是 resnet 的变体,用于语义图像分割(如果某人可以从模型本身中扣除预期的模型文件大小)。
所以,我的问题是为什么我在模型文件大小上有这样的差异,为什么我保存的微调模型比原始模型大?有没有办法在要保存的模型中包含/排除参数?
P.S.1一些可能很方便的信息:
答案 0 :(得分:0)
这是因为,在训练模型并保存模型时,Tensorflow还会保存操作的渐变。
因此,允许对最后一层进行培训会增加您保存的模型的大小。允许对整个模型进行训练实际上会使保存文件的大小加倍,因为每个操作都会保存其渐变。