Pytorch:卷积神经网络-VGG

Pytorch: 走向深度-Visual Geometry Group Network(VGGNet)

Copyright: Jingmin Wei, Pattern Recognition and Intelligent System, School of Artificial and Intelligence, Huazhong University of Science and Technology

Pytorch教程专栏链接



本教程不商用,仅供学习和参考交流使用,如需转载,请联系本人。

Reference

VGG 论文原文链接

本章节需要有一定的爬虫基础知识,在下载数据集时使用了 requests 库。

import numpy as np 
import pandas as pd 
import matplotlib.pyplot as plt 
import requests
import cv2
import torch
import torch.nn as nn
import torch.nn.functional as F 
from torchvision import models
from torchvision import transforms
from PIL import Image
网络基本结构

VGGNet 探索了网络深度和性能的关系,用更小的卷积核和更深的网络结构,取得了较好的效果,是一个非常重要的网络。

主要贡献

使用具有非常小( 3 × 3 3×3 3×3​ )卷积滤波器的架构对深度不断增加的网络进行了全面评估,这表明通过将深度提升到 16 – 19 16–19 16–19​​ 个权重层,可以实现对现有技术配置的显著改进。

为什么使用 3 × 3 3\times3 3×3​​​ 卷积核?

两个 3 × 3 3\times3 3×3 的卷积层串联相当于 1 1 1 5 × 5 5\times5 5×5 的卷积层,即一个像素会跟周围 5 × 5 5\times5 5×5 的像素产生关联,可以说感受野大小为 5 × 5 5\times5 5×5 .

以此类推, 3 3 3 3 × 3 3\times3 3×3 的卷积层串联的效果则相当于 1 1 1 7 × 7 7\times7 7×7 的卷积层。那为什么选择使用 3 3 3 3 × 3 3\times3 3×3 的卷积层而不是使用 1 1 1 7 × 7 7\times7 7×7 的卷积层呢?

V G G VGG VGG​​​​ 中,使用了 3 3 3​​​​ 个 3 × 3 3\times3 3×3​​​​ 卷积核来代替 7 × 7 7\times7 7×7​​​​ 卷积核,使用了 2 2 2​​​​ 个 3 × 3 3\times3 3×3​​​​ 卷积核来代替 5 × 5 5\times5 5×5​​​​​​​ 卷积核。

3 3 3​ 个串联的 3 × 3 3\times3 3×3​ 的卷积层,拥有比 1 1 1​ 个 7 × 7 7\times7 7×7​ 的卷积层更少的参数,参数量是后者的 3 × 3 × 3 7 × 7 = 55 % \frac{3\times3\times3}{7\times7} = 55\% 7×73×3×3=55%

3 3 3​ 个 3 × 3 3\times3 3×3​ 的卷积层比 1 1 1​ 个 7 × 7 7\times7 7×7​ 的卷积层拥有更多的非线性变换,前者可以使用 3 3 3​ 次 R e L U ReLU ReLU​ 激活函数,而后者只能使一次,这样使得 C N N CNN

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值