生活随笔
收集整理的這篇文章主要介紹了
VGG16网络结构复现(Pytorch版)
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
VGG有6種子模型,分別是A、A-LRN、B、C、D、E,我們??吹降幕臼荄、E這兩種模型,即VGG16,VGG19
為了方便閱讀,并沒有加上激活函數(shù)層
from torch
import nn
import torch
from torchsummary
import summary
class VGG16(nn
.Module
):def __init__(self
):super(VGG16
, self
).__init__
()self
.sum_Module
= nn
.Sequential
(nn
.Conv2d
(in_channels
=3, out_channels
=64, kernel_size
=3, stride
=1, padding
=1),nn
.Conv2d
(in_channels
=64, out_channels
=64, kernel_size
=3, stride
=1, padding
=1),nn
.MaxPool2d
(2, 2),nn
.Conv2d
(in_channels
=64, out_channels
=128, kernel_size
=3, stride
=1, padding
=1),nn
.Conv2d
(in_channels
=128, out_channels
=128, kernel_size
=3, stride
=1, padding
=1),nn
.MaxPool2d
(2, 2),nn
.Conv2d
(in_channels
=128, out_channels
=256, kernel_size
=3, stride
=1, padding
=1),nn
.Conv2d
(in_channels
=256, out_channels
=256, kernel_size
=3, stride
=1, padding
=1),nn
.Conv2d
(in_channels
=256, out_channels
=256, kernel_size
=3, stride
=1, padding
=1),nn
.MaxPool2d
(2, 2),nn
.Conv2d
(in_channels
=256, out_channels
=512, kernel_size
=3, stride
=1, padding
=1),nn
.Conv2d
(in_channels
=512, out_channels
=512, kernel_size
=3, stride
=1, padding
=1),nn
.Conv2d
(in_channels
=512, out_channels
=512, kernel_size
=3, stride
=1, padding
=1),nn
.MaxPool2d
(2, 2),nn
.Conv2d
(in_channels
=512, out_channels
=512, kernel_size
=3, stride
=1, padding
=1),nn
.Conv2d
(in_channels
=512, out_channels
=512, kernel_size
=3, stride
=1, padding
=1),nn
.Conv2d
(in_channels
=512, out_channels
=512, kernel_size
=3, stride
=1, padding
=1),nn
.MaxPool2d
(2, 2),nn
.Flatten
(),nn
.Linear
(7 * 7*512, 4096),nn
.Linear
(4096, 4096),nn
.Linear
(4096, 1000))def forward(self
, x
):x
= self
.sum_Module
(x
),return x
if __name__
== '__main__':YOLO
= VGG16
()device
= torch
.device
('cuda:0' if torch
.cuda
.is_available
() else 'cpu')inputs
= YOLO
.to
(device
)summary
(inputs
, (3, 224, 224),batch_size
=1, device
="cuda")
總結(jié)
以上是生活随笔為你收集整理的VGG16网络结构复现(Pytorch版)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。