模型:预训练的ResNet18模型
预训练:
指在特定的大型数据集(如ImageNet)上预先训练好的神经网络模型。这些模型已经学习到了丰富的特征表示,能够识别和处理图像中的多种模式。
ResNet网络:
的核心思想是引入了“残差学习”框架,通过添加跳过一层或多层的连接(即残差连接或快捷连接),解决了随着网络深度增加时训练困难的问题。
网络训练流程:
1.前向传播:通过output = model(input)进行前向传播,计算模型对输入数据的预测。
2.计算损失:使用损失函数loss = criterion(output, target)计算预测输出和目标标签之间的差异。
3.梯度归零:在每次迭代开始前,通过optimizer.zero_grad()清空(重置)之前的梯度,以防止梯度累积。
4.反向传播:调用loss.backward()计算损失相对于模型参数的梯度。
5.参数更新:通过optimizer.step()根据计算得到的梯度更新模型的参数。
一些改进方向:
1.数据集增强
应用一系列随机变换来增加训练数据的多样性,从而提高模型的泛化能力。对原始图像进行如旋转、缩放、翻转等操作,可以生成新的训练样本,使模型学习到更丰富的特征表示。
transforms.Compose()
2.更换模型
比如使用新更先进的模型,效果可能更好一些。