使用 ConvNext 分类器层

问题描述 投票:0回答:1

Convnext 的源代码内部:

self.classifier = nn.Sequential(
    norm_layer(lastconv_output_channels), nn.Flatten(1), nn.Linear(lastconv_output_channels, num_classes)
)

当我调用预训练模型并且我想在分类器层中进行更改时

norm_layer
未定义并且我不知道如何从源代码中使用它

model = torchvision.models.convnext_base(prtrained=True, stochastic_depth_prob=0.1,
                                         layer_scale=1e-4)

model.classifier = nn.Sequential(
   ** norm_layer**(1024), nn.Flatten(1), nn.Linear(1024, 7)
)

请谁能帮忙写正确吗?

machine-learning deep-learning pytorch computer-vision artificial-intelligence
1个回答
0
投票

norm_layer
的默认值在第113行这里给出,如

norm_layer = partial(LayerNorm2d, eps=1e-6)

如果您导入

from torchvision.models.convnext import LayerNorm2d
from functools import partial
,一切都会被明确定义。

使用这个(并修复

pretrained
的拼写),你的代码应该可以工作。 :)

© www.soinside.com 2019 - 2024. All rights reserved.