其他分享
首页 > 其他分享> > 第8组 Alpha (2/3)

第8组 Alpha (2/3)

作者:互联网

第8组 Alpha (2/3)

1.过去完成了哪些任务

完成了模型的准备工作、初步分工和和初步训练;训练结果达到了论文中的精度,准确率初步达标

数据集

我们将使用 Pascal Visual Object Classes (VOC) 2007年和2012年的数据集,这一份数据集中包含有20种不同物体,每一个物体都被以下三个属性描述

{'aeroplane', 'bicycle', 'bird', 'boat', 'bottle', 'bus', 'car', 'cat', 'chair', 'cow', 'diningtable', 'dog', 'horse', 'motorbike', 'person', 'pottedplant', 'sheep', 'sofa', 'train', 'tvmonitor'}

输出

采用 Multibox 技术,包含两个任务

模型

本项目实施 Single Shot Detector (SSD) 方法,卷积操作如下

训练结果

参数

{'epoch': 231, 'model': SSD300(
  (base): VGGBase(
    (conv1_1): Conv2d(3, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1))
    (conv1_2): Conv2d(64, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1))
    (pool1): MaxPool2d(kernel_size=2, stride=2, padding=0, dilation=1, ceil_mode=False)
    (conv2_1): Conv2d(64, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1))
    (conv2_2): Conv2d(128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1))
    (pool2): MaxPool2d(kernel_size=2, stride=2, padding=0, dilation=1, ceil_mode=False)
    (conv3_1): Conv2d(128, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1))
    (conv3_2): Conv2d(256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1))
    (conv3_3): Conv2d(256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1))
    (pool3): MaxPool2d(kernel_size=2, stride=2, padding=0, dilation=1, ceil_mode=True)
    (conv4_1): Conv2d(256, 512, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1))
    (conv4_2): Conv2d(512, 512, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1))
    (conv4_3): Conv2d(512, 512, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1))
    (pool4): MaxPool2d(kernel_size=2, stride=2, padding=0, dilation=1, ceil_mode=False)
    (conv5_1): Conv2d(512, 512, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1))
    (conv5_2): Conv2d(512, 512, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1))
    (conv5_3): Conv2d(512, 512, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1))
    (pool5): MaxPool2d(kernel_size=3, stride=1, padding=1, dilation=1, ceil_mode=False)
    (conv6): Conv2d(512, 1024, kernel_size=(3, 3), stride=(1, 1), padding=(6, 6), dilation=(6, 6))
    (conv7): Conv2d(1024, 1024, kernel_size=(1, 1), stride=(1, 1))
  )
  (aux_convs): AuxiliaryConvolutions(
    (conv8_1): Conv2d(1024, 256, kernel_size=(1, 1), stride=(1, 1))
    (conv8_2): Conv2d(256, 512, kernel_size=(3, 3), stride=(2, 2), padding=(1, 1))
    (conv9_1): Conv2d(512, 128, kernel_size=(1, 1), stride=(1, 1))
    (conv9_2): Conv2d(128, 256, kernel_size=(3, 3), stride=(2, 2), padding=(1, 1))
    (conv10_1): Conv2d(256, 128, kernel_size=(1, 1), stride=(1, 1))
    (conv10_2): Conv2d(128, 256, kernel_size=(3, 3), stride=(1, 1))
    (conv11_1): Conv2d(256, 128, kernel_size=(1, 1), stride=(1, 1))
    (conv11_2): Conv2d(128, 256, kernel_size=(3, 3), stride=(1, 1))
  )
  (pred_convs): PredictionConvolutions(
    (loc_conv4_3): Conv2d(512, 16, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1))
    (loc_conv7): Conv2d(1024, 24, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1))
    (loc_conv8_2): Conv2d(512, 24, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1))
    (loc_conv9_2): Conv2d(256, 24, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1))
    (loc_conv10_2): Conv2d(256, 16, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1))
    (loc_conv11_2): Conv2d(256, 16, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1))
    (cl_conv4_3): Conv2d(512, 84, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1))
    (cl_conv7): Conv2d(1024, 126, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1))
    (cl_conv8_2): Conv2d(512, 126, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1))
    (cl_conv9_2): Conv2d(256, 126, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1))
    (cl_conv10_2): Conv2d(256, 84, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1))
    (cl_conv11_2): Conv2d(256, 84, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1))
  )
), 'optimizer': SGD (
Parameter Group 0
    dampening: 0
    lr: 2e-05
    momentum: 0.9
    nesterov: False
    weight_decay: 0.0005

Parameter Group 1
    dampening: 0
    lr: 1e-05
    momentum: 0.9
    nesterov: False
    weight_decay: 0.0005
)}

精度

{'aeroplane': 0.784830629825592,
 'bicycle': 0.8301308751106262,
 'bird': 0.7785976529121399,
 'boat': 0.7153279781341553,
 'bottle': 0.4816097021102905,
 'bus': 0.86469566822052,
 'car': 0.8681696653366089,
 'cat': 0.8875483870506287,
 'chair': 0.5919950008392334,
 'cow': 0.8332351446151733,
 'diningtable': 0.7646348476409912,
 'dog': 0.8511528968811035,
 'horse': 0.8756575584411621,
 'motorbike': 0.8565510511398315,
 'person': 0.7953250408172607,
 'pottedplant': 0.5440034866333008,
 'sheep': 0.7881692051887512,
 'sofa': 0.7863275408744812,
 'train': 0.8692547678947449,
 'tvmonitor': 0.7590073943138123}

Mean Average Precision (mAP): 0.776

训练231轮后,达到和原论文相同的精度

测试随机图片

img

2. 小组分工

成员 工作
蹇浩航 应用设计,后端
赵泽昊 模型调试与优化,应用的封装
郭升 小程序前端
丁浩喆 小程序前端
郭英来 小程序后端

3. 燃尽图

img

4. 例会照片

img

5. 剩余任务&困难

6. 收获和疑问

标签:kernel,padding,stride,Alpha,256,Conv2d,size
来源: https://www.cnblogs.com/maskros/p/15612974.html