VGGNets原理及其Tensorflow实现

VGG继承了AlexNet的思路,建立了一个层次更多、深度更深的网络。结构同样是5个卷积层和3个全连接层,但是每个卷积层做2~4次卷积,卷积核的大小全是3*3的,使得参数变少了。

import tflearn
from tflearn.layers.core import input_data,dropout,fully_connected
from tflearn.layers.conv import conv_2d,max_pool_2d
from tflearn.layers.estimator import regression
#数据导入
import tflearn.datasets.oxflower17 as oxflower17
X,Y=oxflower17.load_data(one_hot=True)
#建立模型
#1
network=input_data(shape=[None,224,224,3])
network=conv_2d(network,64,3,activation='relu')
network=conv_2d(network,64,3,activation='relu')
network=max_pool_2d(network,2,strides=2)

#2
network=conv_2d(network,128,3,activation='relu')
network=conv_2d(network,128,3,activation='relu')
network=max_pool_2d(network,2,strides=2)

#3
network=conv_2d(network,256,3,activation='relu')
network=conv_2d(network,256,3,activation='relu')
network=conv_2d(network,256,3,activation='relu')
network=max_pool_2d(network,2,strides=2)

#4
network=conv_2d(network,512,3,activation='relu')
network=conv_2d(network,512,3,activation='relu')
network=conv_2d(network,512,3,activation='relu')
network=max_pool_2d(network,2,strides=2)

#5
network=conv_2d(network,512,3,activation='relu')
network=conv_2d(network,512,3,activation='relu')
network=conv_2d(network,512,3,activation='relu')
network=max_pool_2d(network,2,strides=2)

network=fully_connected(network,4096,activation='relu')
network=dropout(network,0.5)

network=fully_connected(network,4096,activation='relu')
network=dropout(network,0.5)

network=fully_connected(network,17,activation='softmax')
network=dropout(network,0.5)

#损失函数
network=regression(network,optimizer='rmsprop',loss='categorical_crossentropy',learning_rate=0.001)
model=tflearn.DNN(network,checkpoint_path='model_vgg',max_checkpoints=1,tensorboard_verbose=0)

model.fit(X,Y,n_epoch=500,shuffle=True,show_metric=True,
         batch_size=32,snapshot_step=500,snapshot_epoch=False,run_id='vgg_oxflowers17')

 

论文全部使用了3*3的卷积核和2*2的池化核,通过不断加深网络结构来提升性能(有正则化的效果)

其中出现多个完全一样的3*3的卷积层堆叠在一起,2个3*3相当于1个5*5的卷积核,3个3*3相当于1个7*7的。串联拥有更少的参数

拥有更多的非线性变换,使得CNN对特征的学习能力更强

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值