目录
BatchNorm2d
BatchNorm2d(64, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
定义了一个对 64 个通道的特征图进行批量归一化的层,使用较小的 eps 值来防止除以零,使用 momentum 参数来计算移动平均值和移动方差,使用可学习的缩放和平移参数,并跟踪整个训练过程中的统计数据。BatchNorm2d 是 PyTorch 中用于对二维输入进行批量归一化的模块,二位输入通常为图像。其对每个小批量数据计算均值和方差,然后对输入数据进行归一化处理,最后通过可学习的缩放参数和平移参数对归一化后的数据进行缩放和平移。
- 64:该批归一化层将处理 64 个通道的特征图。
- eps=1e-05:计算方差时加上一个极小的数esp,防止出现除以零的情况。
- momentum=0.1:计算移动平均值的动量参数。训练过程中BatchNorm2d会计算数据的移动平均值和移动方差,以便在推理时使用。
- affine=True:是否使用可学习的缩放和平移参数。设置为 True则 BatchNorm2d 层会学习额外的参数,用于对归一化后的数据进行缩放和平移。
- track_running_stats=True:是否跟踪整个训练过程中的均值和方差。设置为 True则 BatchNorm2d 层会在训练过程中不断更新这些统计数据,以便在推理时使用。
fc.in_features
num_ftrs = model_resnet18.fc.in_features
获取模型ResNet18的全连接层的输入特征数量。通常用于在迁移学习中,将预训练的ResNet-18模型的全连接层替换为新的全连接层,以适应新的任务和数据集。例如将ResNet-18模型的全连接层替换为一个具有10个输出的全连接层,以进行10分类任务。
nn.Linear
model_resnet18.fc = nn.Linear(num_ftrs, num_classes)
nn.Linear(num_ftrs, num_classes)创建了一个新的全连接层,其中num_ftrs是输入特征数,num_classes是输出类别数。
torchsummary
summary(model_resnet18, input_size=(3, 224, 224))
summary函数是torchsummary中用于打印模型网络结构及其参数信息的函数。model_resnet18是需要打印的模型,(3, 224, 224)是输入数据的形状,表示输入数据有3个通道,大小为224x224。resnet18模型输入数据形状一般为(3, 224, 224),这意味着如果原始图像大小为96*96,也需要将其调整为224*224,与resnet 18模型训练时的大小相同。resnet18第一个卷积层通常输出形状为[-1, 64, 112, 112],-1表示该维度的大小由输入数据决定