參考連結1: 睿智的目标檢測23——Pytorch搭建SSD目标檢測平台
參考連結2: bubbliiiing/ssd-pytorch
參考連結3: Pytorch 搭建自己的SSD目标檢測平台(Bubbliiiing 深度學習 教程)
代碼:
import torch
import torch.nn as nn
import torch.nn.functional as F
from torch.autograd import Variable
import os
base = [
64, 64,
'M', 128, 128,
'M', 256, 256, 256,
'C', 512, 512, 512,
'M',512, 512, 512
]
def vgg(i): # add_vgg(3)
layers = []
in_channels = i
for v in base:
if v == 'M':
layers += [nn.MaxPool2d(kernel_size=2, stride=2)]
elif v == 'C':
layers += [nn.MaxPool2d(kernel_size=2, stride=2, ceil_mode=True)]
else:
conv2d = nn.Conv2d(in_channels, v, kernel_size=3, padding=1)
layers += [conv2d, nn.ReLU(inplace=True)]
in_channels = v
pool5 = nn.MaxPool2d(kernel_size=3, stride=1, padding=1)
conv6 = nn.Conv2d(512, 1024, kernel_size=3, padding=6, dilation=6)
conv7 = nn.Conv2d(1024, 1024, kernel_size=1)
layers += [pool5, conv6,
nn.ReLU(inplace=True), conv7, nn.ReLU(inplace=True)]
return layers
if __name__ == "__main__":
print(r'運作程式: nets\vgg.py')
my_vgg = vgg(3)
print(r'結束程式: nets\vgg.py')
調試程式,檢視主幹部分結構:
![](https://img.laitimes.com/img/__Qf2AjLwojIjJCLyojI0JCLiAzNfRHLGZkRGZkRfJ3bs92YsYTMfVmepNHLz0EROpXVq5kMRpHW3BjMMBjVtJWd0ckW65UbM5WOHJWa5kHT20ESjBjUIF2X0hXZ0xCMx81dvRWYoNHLrdEZwZ1Rh5WNXp1bwNjW1ZUba9VZwlHdssmch1mclRXY39CXldWYtlWPzNXZj9mcw1ycz9WL49zZuBnLygTMzEjNxEjM3AjMxAjMwIzLc52YucWbp5GZzNmLn9Gbi1yZtl2Lc9CX6MHc0RHaiojIsJye.png)
手工模拟代碼執行手稿: