更改输入大小时如何调整机器学习模型输出层?

时间:2021-07-26 00:14:54

标签: machine-learning neural-network recurrent-neural-network

我有一个 resnet50 模型,目前需要 4 个 80x80 大小的图像作为输入并输出 60 个值:

resnet = resnet50(pretrained=False)
resnet.conv1 = nn.Conv2d(1, 64, kernel_size=7, stride=2, padding=3,bias=False)
resnet.fc = nn.Identity()   
output_layers = nn.Sequential(
    (nn.Linear(2048, 500)),
    nn.ReLU(),
    nn.Dropout(0.5),
    nn.Linear(500, 60)
)
model = nn.Sequential(resnet, *output_layers)

我希望将输入图像的大小从 80x80 -> 224x224 更改。这样做会将 resnet 模型的输出特征数从 2048 更改为 51200。因此,如果我想更改我的代码以使模型能够使用这个新的输入大小,我只需要更改 { 中的第一个线性层{1}} 像这样:

ouput_layers

我的问题是:

从 2048 -> 500 -> 60 个特征看起来不错,但从 51,200 -> 500 -> 60 个特征似乎是一个巨大的飞跃。

  1. 我是否需要在中间添加更多线性层?如果是,是否有经验法则来决定如何逐渐减少特征数量?
  2. 如果我在这种情况下大幅增加输入大小,是否建议我使用更深的网络,例如:resnet101?

0 个答案:

没有答案