您的位置:首页 > 理论基础 > 计算机网络

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') ;
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  matlab vgg-16 网络结构