vgg-16网络结构 matlab程序
2017-03-13 20:27
253 查看
lr = [.1 2] ;
net.layers = {} ;
% cbr1
net.layers{end+1} = struct('type', 'conv', ...
'weights', {{0.01*randn(3,3,3,64, 'single'), zeros(1, 64, 'single')}}, ...
'learningRate', lr, ...
'stride', 1, ...
'pad', 1) ;
net.layers{end+1} = struct('type', 'bnorm', ...
'weights', {{ones(64,1, 'single'), zeros(1, 64, 'single')}}, ...
'learningRate', [.1 .1 1], ...
'weightDecay', [0 0]) ;
net.layers{end+1} = struct('type', 'relu') ;
% cbr2
net.layers{end+1} = struct('type', 'conv', ...
'weights', {{0.01*randn(3,3,64,64, 'single'), zeros(1, 64, 'single')}}, ...
'learningRate', lr, ...
'stride', 1, ...
'pad', 1) ;
net.layers{end+1} = struct('type', 'bnorm', ...
'weights', {{ones(64,1, 'single'), zeros(1, 64, 'single')}}, ...
'learningRate', [.1 .1 1], ...
'weightDecay', [0 0]) ;
net.layers{end+1} = struct('type', 'relu') ;
net.layers{end+1} = struct('type', 'pool', ...
'method', 'max', ...
'pool', [2 2], ...
'stride', 2, ...
'pad', 0) ;
% cbr3
net.layers{end+1} = struct('type', 'conv', ...
'weights', {{0.05*randn(3,3,64,128, 'single'), zeros(1,128,'single')}}, ...
'learningRate', lr, ...
'stride', 1, ...
'pad', 1) ;
net.layers{end+1} = struct('type', 'bnorm', ...
'weights', {{ones(128,1, 'single'), zeros(1, 128, 'single')}}, ...
'learningRate', [.1 .1 1], ...
'weightDecay', [0 0]) ;
net.layers{end+1} = struct('type', 'relu') ;
% cbr4
net.layers{end+1} = struct('type', 'conv', ...
'weights', {{0.05*randn(3,3,128,128, 'single'), zeros(1,128,'single')}}, ...
'learningRate', lr, ...
'stride', 1, ...
'pad', 1) ;
net.layers{end+1} = struct('type', 'bnorm', ...
'weights', {{ones(128,1, 'single'), zeros(1, 128, 'single')}}, ...
'learningRate', [.1 .1 1], ...
'weightDecay', [0 0]) ;
net.layers{end+1} = struct('type', 'relu') ;
net.layers{end+1} = struct('type', 'pool', ...
'method', 'max', ...
'pool', [2 2], ...
'stride', 2, ...
'pad', 0) ;
% cbr5
net.layers{end+1} = struct('type', 'conv', ...
'weights', {{0.05*randn(3,3,128,256, 'single'), zeros(1,256,'single')}}, ...
'learningRate', lr, ...
'stride', 1, ...
'pad', 2) ;
net.layers{end+1} = struct('type', 'bnorm', ...
'weights', {{ones(256,1, 'single'), zeros(1, 256, 'single')}}, ...
'learningRate', [.1 .1 1], ...
'weightDecay', [0 0]) ;
net.layers{end+1} = struct('type', 'relu') ;
% cbr6
net.layers{end+1} = struct('type', 'conv', ...
'weights', {{0.05*randn(3,3,256,256, 'single'), zeros(1,256,'single')}}, ...
'learningRate', lr, ...
'stride', 1, ...
'pad', 2) ;
net.layers{end+1} = struct('type', 'bnorm', ...
'weights', {{ones(256,1, 'single'), zeros(1, 256, 'single')}}, ...
'learningRate', [.1 .1 1], ...
'weightDecay', [0 0]) ;
net.layers{end+1} = struct('type', 'relu') ;
% cbr7
net.layers{end+1} = struct('type', 'conv', ...
'weights', {{0.05*randn(3,3,256,256, 'single'), zeros(1,256,'single')}}, ...
'learningRate', lr, ...
'stride', 1, ...
'pad', 2) ;
net.layers{end+1} = struct('type', 'bnorm', ...
'weights', {{ones(256,1, 'single'), zeros(1, 256, 'single')}}, ...
'learningRate', [.1 .1 1], ...
'weightDecay', [0 0]) ;
net.layers{end+1} = struct('type', 'relu') ;
net.layers{end+1} = struct('type', 'pool', ...
'method', 'max', ...
'pool', [2 2], ...
'stride', 2, ...
'pad', 0) ;
% cbr8
net.layers{end+1} = struct('type', 'conv', ...
'weights', {{0.05*randn(3,3,256,512, 'single'), zeros(1,512,'single')}}, ...
'learningRate', lr, ...
'stride', 1, ...
'pad', 2) ;
net.layers{end+1} = struct('type', 'bnorm', ...
'weights', {{ones(512,1, 'single'), zeros(1, 512, 'single')}}, ...
'learningRate', [.1 .1 1], ...
'weightDecay', [0 0]) ;
net.layers{end+1} = struct('type', 'relu') ;
% cbr9
net.layers{end+1} = struct('type', 'conv', ...
'weights', {{0.05*randn(3,3,512,512, 'single'), zeros(1,512,'single')}}, ...
'learningRate', lr, ...
'stride', 1, ...
'pad', 2) ;
net.layers{end+1} = struct('type', 'bnorm', ...
'weights', {{ones(512,1, 'single'), zeros(1, 512, 'single')}}, ...
'learningRate', [.1 .1 1], ...
'weightDecay', [0 0]) ;
net.layers{end+1} = struct('type', 'relu') ;
% cbr10
net.layers{end+1} = struct('type', 'conv', ...
'weights', {{0.05*randn(3,3,512,512, 'single'), zeros(1,512,'single')}}, ...
'learningRate', lr, ...
'stride', 1, ...
'pad', 2) ;
net.layers{end+1} = struct('type', 'bnorm', ...
'weights', {{ones(512,1, 'single'), zeros(1, 512, 'single')}}, ...
'learningRate', [.1 .1 1], ...
'weightDecay', [0 0]) ;
net.layers{end+1} = struct('type', 'relu') ;
net.layers{end+1} = struct('type', 'pool', ...
'method', 'max', ...
'pool', [2 2], ...
'stride', 2, ...
'pad', 0) ;
%cbr11
net.layers{end+1} = struct('type', 'conv', ...
'weights', {{0.05*randn(3,3,512,512, 'single'), zeros(1,512,'single')}}, ...
'learningRate', lr, ...
'stride', 1, ...
'pad', 2) ;
net.layers{end+1} = struct('type', 'bnorm', ...
'weights', {{ones(512,1, 'single'), zeros(1, 512, 'single')}}, ...
'learningRate', [.1 .1 1], ...
'weightDecay', [0 0]) ;
net.layers{end+1} = struct('type', 'relu') ;
% cbr12
net.layers{end+1} = struct('type', 'conv', ...
'weights', {{0.05*randn(3,3,512,512, 'single'), zeros(1,512,'single')}}, ...
'learningRate', lr, ...
'stride', 1, ...
'pad', 2) ;
net.layers{end+1} = struct('type', 'bnorm', ...
'weights', {{ones(512,1, 'single'), zeros(1, 512, 'single')}}, ...
'learningRate', [.1 .1 1], ...
'weightDecay', [0 0]) ;
net.layers{end+1} = struct('type', 'relu') ;
% cbr13
net.layers{end+1} = struct('type', 'conv', ...
'weights', {{0.05*randn(3,3,512,512, 'single'), zeros(1,512,'single')}}, ...
'learningRate', lr, ...
'stride', 1, ...
'pad', 2) ;
net.layers{end+1} = struct('type', 'bnorm', ...
'weights', {{ones(512,1, 'single'), zeros(1, 512, 'single')}}, ...
'learningRate', [.1 .1 1], ...
'weightDecay', [0 0]) ;
net.layers{end+1} = struct('type', 'relu') ;
net.layers{end+1} = struct('type', 'pool', ...
'method', 'max', ...
'pool', [2 2], ...
'stride', 2, ...
'pad', 0) ;
%fc1
net.layers{end+1} = struct('type', 'conv', ...
'weights', {{0.05*randn(7,7,512,4096, 'single'), zeros(1,4096,'single')}}, ...
'learningRate', lr, ...
'stride', 1, ...
'pad', 0) ;
% fc2
net.layers{end+1} = struct('type', 'conv', ...
'weights', {{0.05*randn(1,1,4096,4096, 'single'), zeros(1,4096,'single')}}, ...
'learningRate', .1*lr, ...
'stride', 1, ...
'pad', 0) ;
% fc3
net.layers{end+1} = struct('type', 'conv', ...
'weights', {{0.05*randn(1,1,4096,1000, 'single'), zeros(1,1000,'
4000
single')}}, ...
'learningRate', .1*lr, ...
'stride', 1, ...
'pad', 0) ;
% Loss layer
net.layers{end+1} = struct('type', 'softmaxloss') ;
net.layers = {} ;
% cbr1
net.layers{end+1} = struct('type', 'conv', ...
'weights', {{0.01*randn(3,3,3,64, 'single'), zeros(1, 64, 'single')}}, ...
'learningRate', lr, ...
'stride', 1, ...
'pad', 1) ;
net.layers{end+1} = struct('type', 'bnorm', ...
'weights', {{ones(64,1, 'single'), zeros(1, 64, 'single')}}, ...
'learningRate', [.1 .1 1], ...
'weightDecay', [0 0]) ;
net.layers{end+1} = struct('type', 'relu') ;
% cbr2
net.layers{end+1} = struct('type', 'conv', ...
'weights', {{0.01*randn(3,3,64,64, 'single'), zeros(1, 64, 'single')}}, ...
'learningRate', lr, ...
'stride', 1, ...
'pad', 1) ;
net.layers{end+1} = struct('type', 'bnorm', ...
'weights', {{ones(64,1, 'single'), zeros(1, 64, 'single')}}, ...
'learningRate', [.1 .1 1], ...
'weightDecay', [0 0]) ;
net.layers{end+1} = struct('type', 'relu') ;
net.layers{end+1} = struct('type', 'pool', ...
'method', 'max', ...
'pool', [2 2], ...
'stride', 2, ...
'pad', 0) ;
% cbr3
net.layers{end+1} = struct('type', 'conv', ...
'weights', {{0.05*randn(3,3,64,128, 'single'), zeros(1,128,'single')}}, ...
'learningRate', lr, ...
'stride', 1, ...
'pad', 1) ;
net.layers{end+1} = struct('type', 'bnorm', ...
'weights', {{ones(128,1, 'single'), zeros(1, 128, 'single')}}, ...
'learningRate', [.1 .1 1], ...
'weightDecay', [0 0]) ;
net.layers{end+1} = struct('type', 'relu') ;
% cbr4
net.layers{end+1} = struct('type', 'conv', ...
'weights', {{0.05*randn(3,3,128,128, 'single'), zeros(1,128,'single')}}, ...
'learningRate', lr, ...
'stride', 1, ...
'pad', 1) ;
net.layers{end+1} = struct('type', 'bnorm', ...
'weights', {{ones(128,1, 'single'), zeros(1, 128, 'single')}}, ...
'learningRate', [.1 .1 1], ...
'weightDecay', [0 0]) ;
net.layers{end+1} = struct('type', 'relu') ;
net.layers{end+1} = struct('type', 'pool', ...
'method', 'max', ...
'pool', [2 2], ...
'stride', 2, ...
'pad', 0) ;
% cbr5
net.layers{end+1} = struct('type', 'conv', ...
'weights', {{0.05*randn(3,3,128,256, 'single'), zeros(1,256,'single')}}, ...
'learningRate', lr, ...
'stride', 1, ...
'pad', 2) ;
net.layers{end+1} = struct('type', 'bnorm', ...
'weights', {{ones(256,1, 'single'), zeros(1, 256, 'single')}}, ...
'learningRate', [.1 .1 1], ...
'weightDecay', [0 0]) ;
net.layers{end+1} = struct('type', 'relu') ;
% cbr6
net.layers{end+1} = struct('type', 'conv', ...
'weights', {{0.05*randn(3,3,256,256, 'single'), zeros(1,256,'single')}}, ...
'learningRate', lr, ...
'stride', 1, ...
'pad', 2) ;
net.layers{end+1} = struct('type', 'bnorm', ...
'weights', {{ones(256,1, 'single'), zeros(1, 256, 'single')}}, ...
'learningRate', [.1 .1 1], ...
'weightDecay', [0 0]) ;
net.layers{end+1} = struct('type', 'relu') ;
% cbr7
net.layers{end+1} = struct('type', 'conv', ...
'weights', {{0.05*randn(3,3,256,256, 'single'), zeros(1,256,'single')}}, ...
'learningRate', lr, ...
'stride', 1, ...
'pad', 2) ;
net.layers{end+1} = struct('type', 'bnorm', ...
'weights', {{ones(256,1, 'single'), zeros(1, 256, 'single')}}, ...
'learningRate', [.1 .1 1], ...
'weightDecay', [0 0]) ;
net.layers{end+1} = struct('type', 'relu') ;
net.layers{end+1} = struct('type', 'pool', ...
'method', 'max', ...
'pool', [2 2], ...
'stride', 2, ...
'pad', 0) ;
% cbr8
net.layers{end+1} = struct('type', 'conv', ...
'weights', {{0.05*randn(3,3,256,512, 'single'), zeros(1,512,'single')}}, ...
'learningRate', lr, ...
'stride', 1, ...
'pad', 2) ;
net.layers{end+1} = struct('type', 'bnorm', ...
'weights', {{ones(512,1, 'single'), zeros(1, 512, 'single')}}, ...
'learningRate', [.1 .1 1], ...
'weightDecay', [0 0]) ;
net.layers{end+1} = struct('type', 'relu') ;
% cbr9
net.layers{end+1} = struct('type', 'conv', ...
'weights', {{0.05*randn(3,3,512,512, 'single'), zeros(1,512,'single')}}, ...
'learningRate', lr, ...
'stride', 1, ...
'pad', 2) ;
net.layers{end+1} = struct('type', 'bnorm', ...
'weights', {{ones(512,1, 'single'), zeros(1, 512, 'single')}}, ...
'learningRate', [.1 .1 1], ...
'weightDecay', [0 0]) ;
net.layers{end+1} = struct('type', 'relu') ;
% cbr10
net.layers{end+1} = struct('type', 'conv', ...
'weights', {{0.05*randn(3,3,512,512, 'single'), zeros(1,512,'single')}}, ...
'learningRate', lr, ...
'stride', 1, ...
'pad', 2) ;
net.layers{end+1} = struct('type', 'bnorm', ...
'weights', {{ones(512,1, 'single'), zeros(1, 512, 'single')}}, ...
'learningRate', [.1 .1 1], ...
'weightDecay', [0 0]) ;
net.layers{end+1} = struct('type', 'relu') ;
net.layers{end+1} = struct('type', 'pool', ...
'method', 'max', ...
'pool', [2 2], ...
'stride', 2, ...
'pad', 0) ;
%cbr11
net.layers{end+1} = struct('type', 'conv', ...
'weights', {{0.05*randn(3,3,512,512, 'single'), zeros(1,512,'single')}}, ...
'learningRate', lr, ...
'stride', 1, ...
'pad', 2) ;
net.layers{end+1} = struct('type', 'bnorm', ...
'weights', {{ones(512,1, 'single'), zeros(1, 512, 'single')}}, ...
'learningRate', [.1 .1 1], ...
'weightDecay', [0 0]) ;
net.layers{end+1} = struct('type', 'relu') ;
% cbr12
net.layers{end+1} = struct('type', 'conv', ...
'weights', {{0.05*randn(3,3,512,512, 'single'), zeros(1,512,'single')}}, ...
'learningRate', lr, ...
'stride', 1, ...
'pad', 2) ;
net.layers{end+1} = struct('type', 'bnorm', ...
'weights', {{ones(512,1, 'single'), zeros(1, 512, 'single')}}, ...
'learningRate', [.1 .1 1], ...
'weightDecay', [0 0]) ;
net.layers{end+1} = struct('type', 'relu') ;
% cbr13
net.layers{end+1} = struct('type', 'conv', ...
'weights', {{0.05*randn(3,3,512,512, 'single'), zeros(1,512,'single')}}, ...
'learningRate', lr, ...
'stride', 1, ...
'pad', 2) ;
net.layers{end+1} = struct('type', 'bnorm', ...
'weights', {{ones(512,1, 'single'), zeros(1, 512, 'single')}}, ...
'learningRate', [.1 .1 1], ...
'weightDecay', [0 0]) ;
net.layers{end+1} = struct('type', 'relu') ;
net.layers{end+1} = struct('type', 'pool', ...
'method', 'max', ...
'pool', [2 2], ...
'stride', 2, ...
'pad', 0) ;
%fc1
net.layers{end+1} = struct('type', 'conv', ...
'weights', {{0.05*randn(7,7,512,4096, 'single'), zeros(1,4096,'single')}}, ...
'learningRate', lr, ...
'stride', 1, ...
'pad', 0) ;
% fc2
net.layers{end+1} = struct('type', 'conv', ...
'weights', {{0.05*randn(1,1,4096,4096, 'single'), zeros(1,4096,'single')}}, ...
'learningRate', .1*lr, ...
'stride', 1, ...
'pad', 0) ;
% fc3
net.layers{end+1} = struct('type', 'conv', ...
'weights', {{0.05*randn(1,1,4096,1000, 'single'), zeros(1,1000,'
4000
single')}}, ...
'learningRate', .1*lr, ...
'stride', 1, ...
'pad', 0) ;
% Loss layer
net.layers{end+1} = struct('type', 'softmaxloss') ;
相关文章推荐
- 【深度学习】VGG-16网络结构
- 语音子带编码的子带分解与综合MATLAB程序(基于树形结构滤波器)
- 循环控制结构程序01 - 零基础入门学习C语言16
- matlab图形格式控制+程序结构
- 无向网络全局以及局部效率matlab程序
- 用Caffe自带程序画网络结构图
- Visual C# 2008+SQL Server 2005 数据库与网络开发―― 2.1 程序结构
- 微信小程序目录结构、事件处理、网络请求
- PLA算法matlab程序 & 神经网络工具箱的使用
- matlab练习程序(结构张量structure tensor)
- 循环控制结构程序01 - 零基础入门学习C语言16
- [Matlab]基础教程学习笔记(二):程序控制结构
- MATLAB基础5-MATLAB程序控制结构
- **MATLAB** MATLAB的程序控制结构
- MATLAB程序结构:顺序结构【1】
- 神经网络matlab程序
- matlab练习程序(矩阵生成有向网络图)
- matlab练习程序(结构张量structure tensor)
- ResNet, AlexNet, VGG, Inception: 理解各种卷积网络的结构
- matlab练习程序(神经网络分类)