首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >当使用预训练模型(vgg,resnet like)作为主干时,我们应该在‘`eval模式’还是‘`train模式’中使用它?

当使用预训练模型(vgg,resnet like)作为主干时,我们应该在‘`eval模式’还是‘`train模式’中使用它?
EN

Stack Overflow用户
提问于 2021-10-01 06:10:21
回答 1查看 103关注 0票数 1

当我们使用预训练的模型,例如vgg16,作为整个模型的主干,作为特征提取器,模型的数据流可以描述如下:

Data --> vgg16 -->另一个网络-->输出

到目前为止,我已经为vgg16中的所有参数设置了False require_grads标志,并从优化器的参数列表中排除了这些参数,因此vgg16在训练期间不会被修改。

但是当我进一步研究的时候,我现在想知道应该在哪种模式下使用vgg16?在运行训练时期之前,我们应该调用vgg16.eval()吗?

EN

回答 1

Stack Overflow用户

发布于 2021-10-01 07:50:08

然而,在一般情况下,如果您冻结模型(使用requires_grad = False),那么您将不再更新运行统计信息,因此应该使用运行统计信息,即将模型置于求值模式。

VGG的主干没有任何规格化层,也没有丢失。因此,最终无论你是将主干放入评估模式还是训练模式,都无关紧要。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/69401248

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档