我应该只使用“完全相同”的输入形状进行迁移学习吗?

2024-04-23 08:03:32 发布

您现在位置:Python中文网/ 问答频道 /正文

我用(5x128x128x3)大小的输入形状训练了一个CNN模型 我的训练重量是(5x128x128x3)

顺便说一下,我想用这个重量来训练(7x128x128x3)大小的输入数据

所以,这是我的问题 我应该只使用相同形状的输入吗? 我想知道我是否可以使用另一种尺寸(在本例中为7x128x128x3)的输入来进行迁移学习

ValueError: Error when checking input: expected input_1 to have shape (5, 128, 128, 3) but got arry with shape (7, 128, 128, 3)```

Tags: to数据模型input尺寸errorcnn形状
1条回答
网友
1楼 · 发布于 2024-04-23 08:03:32

我们来分解尺寸(5x128x128x3)

第一个维度是批量大小(训练原始模型时为5)。这是不相关的,您可以将其设置为None,正如在注释中指出的那样,以向模型提供任意大小的批处理。你知道吗

第二到第三个维度(128x128)是图像的宽度和高度,您可以更改这些维度,但是如果不知道模型结构和用于转移学习的层输出,就很难确定。您可以更改这些的原因是二维卷积滤波器在图像的二维维度(宽度和高度)上重复,因此它们对于不同的宽度和高度仍然有效(假设填充兼容)。但是,如果你改变了太多的二维维度,就有可能是层的感受野改变了,从而损害了迁移学习的表现。例如,如果网络中用于128x128输入的第7个conv层在每次激活时都能看到整个输入图像(128x128的接收域),那么如果将宽度和高度增加一倍,它将不再存在,并且该层可能无法识别某些全局特征。你知道吗

第四维度是输入图像中的通道数,不能更改,因为第一层中的过滤器在深度维度上有3个权重。你知道吗

相关问题 更多 >