增强方法:
- random_crop: 随机裁剪
- random_flip: 随机翻转
- random_rotate:随机旋转
- random_shelter: 随机遮挡
CLASSNUMS = 5 # 分类个数
MODEL_FLAG = 1 # 0: 使用原始resnet, 1:使用调整后的resnet
INPUTSIZE = (224, 320) # 调整后的resnet输入尺寸
BATCHSIZE = 32 # 训练batch参数
EPOCHES = 100 # 训练次数
LEARNING_RATE = 0.0005 # 学习率参数
DROPOUT = 0.0 # dropout参数(0-1), 为0.0时即不使用dropout
结论: 使用dropout会降低模型效果。
从resnet50中选择三个卷积层的特征进行可视化(每个卷积层特征中随机选择30个通道进行绘图) 卷积层:'conv1_conv2', 'conv2_conv2', 'conv4_block2_conv3'
输入图像:
特征图像:
损失与准确率曲线:
- 将模型输入从224x224调整到224x320(与数据集中的图像比例相适应);
- 将resnet最后一个block的每个输出通道由2048减少到1024(减少了模型参数,减轻过拟合)。
训练损失与准确率曲线:
训练集准确率:0.9856
测试集准确率:0.7623
混淆矩阵:
预测结果:
训练用时:不同的学习率以及dropout参数,训练用时基本一致
- 原版resnet:100个epoch总共约2小时
- 调整后的resnet:100个epoch总共约2.5小时
单帧测试用时:
- 原版resnet:0.0324s
- 调整后的resnet:0.0327s
注:训练和测试的运行设备均为:RTX2080