当我们使用预训练的模型,例如vgg16,作为整个模型的主干,作为特征提取器,模型的数据流可以描述如下:
Data --> vgg16 -->另一个网络-->输出
到目前为止,我已经为vgg16中的所有参数设置了False require_grads
标志,并从优化器的参数列表中排除了这些参数,因此vgg16在训练期间不会被修改。
但是当我进一步研究的时候,我现在想知道应该在哪种模式下使用vgg16?在运行训练时期之前,我们应该调用vgg16.eval()
吗?
发布于 2021-10-01 07:50:08
然而,在一般情况下,如果您冻结模型(使用requires_grad = False
),那么您将不再更新运行统计信息,因此应该使用运行统计信息,即将模型置于求值模式。
VGG的主干没有任何规格化层,也没有丢失。因此,最终无论你是将主干放入评估模式还是训练模式,都无关紧要。
https://stackoverflow.com/questions/69401248
复制相似问题