我使用的是tensorflow框架,我注意到在tensorflow模型文件的大小上存在很大的差异。
例如,框架提供了两个模型:
它们都有一个172.539 kb
大小
当我在我的模型中应用微调时,在图形中做一些小改动(在框架中有一个模块)并保存我的模型时,大小基本上是相同的:178.525 kb
。
首先,我感到有点惊讶的是,我的微调模型有点大,因为我只将最后一层从21个类更改为14个类,所以我希望模型文件的大小会稍微小一些,但由于差异太小,我没有注意到。
但是,当我使用相同的模型文件(我指的是预先训练的模型)训练同一个模型并将模型保存到磁盘中时,文件大小是完全不同的:340.097 kb
。我的意思是允许网络修改所有参数,而不仅仅是最后一层的参数。
正在实现的模型是用于语义图像分割的resnet的一个变体(如果有人可以从模型本身中扣除预期的模型文件大小)。
所以,我的问题是为什么我在模型文件大小上有这么大的差异,为什么我保存的精细调优模型比原始模型要大呢?是否有方法包括/排除要保存的模型中的参数?
P.S.1一些可能有用的信息:
P.S.2我不确定堆栈溢出,这也是这个问题的合适位置。
发布于 2017-11-15 09:44:56
这是因为,当训练模型并保存它们时,Tensorflow也会保存操作的梯度。
因此,允许在最后一层进行培训将增加您保存的模型的大小。允许对整个模型进行培训,基本上是保存文件大小的两倍,因为每个op都会保存其梯度。
https://stackoverflow.com/questions/47303615
复制相似问题