DAGNN simple network for IMAGE TO IMAGE regression. No convergence?
3 views (last 30 days)
Show older comments
Hi,
I'm trying to use a simple network to converge on IMAGE TO IMAGE based regression, however, when I check the output in the FC layers, they are very scaled down, ranging from 10e-4 etc. Please review this network and help me find what I'm doing wrong?
function net = initializeRegNetwork_experiment1(opts)
net1 = dagnn.DagNN() ;
net1.addLayer('conv1', dagnn.Conv('size', [11 11 1 10], 'hasBias', true, 'stride', [1, 1], 'pad', [0 0 0 0]), {'input1'}, {'conv1'}, {'conv1f' 'conv1b'});
net1.addLayer('relu1', dagnn.ReLU(), {'conv1'}, {'relu1'}, {});
net1.addLayer('pool1', dagnn.Pooling('method', 'max', 'poolSize', [5 5], 'stride', [2 2], 'pad', [0 0 0 0]), {'relu1'}, {'pool1'}, {});
net1.addLayer('conv2', dagnn.Conv('size', [7,7, 10, 50], 'hasBias', true, 'stride', [1, 1], 'pad', [0 0 0 0]), {'pool1'}, {'conv2'}, {'conv2f' 'conv2b'});
net1.addLayer('relu2', dagnn.ReLU(), {'conv2'}, {'relu2'}, {});
net1.addLayer('pool2', dagnn.Pooling('method', 'max', 'poolSize', [5 5], 'stride', [2 2], 'pad', [0 0 0 0]), {'relu2'}, {'pool2'}, {});
net1.addLayer('drop2',dagnn.DropOut('rate',0.2),{'pool2'},{'drop2'});
net=net1;
net.addLayer('fc3', dagnn.Conv('size', [29,29,50,1000], 'hasBias', true, 'stride', [1, 1], 'pad', [0 0 0 0]), {'drop2'}, {'fc3'}, {'conv3f' 'conv3b'});
net.addLayer('fc4', dagnn.Conv('size', [1,1,1000,961], 'hasBias', true, 'stride', [1,1], 'pad', [0 0 0 0]), {'fc3'}, {'predictiont'}, {'conv4f' 'conv4b'});
net.addLayer('fc5R',dagnn.Reshape(),{'predictiont'},'prediction');
net.addLayer('objective', dagnn.RegLoss('loss', 'l2loss'), ...
{'prediction','label1'}, 'objective') ;
net.addLayer('error', dagnn.RegLoss('loss', 'mpe'), ...
{'prediction','label1'}, 'error') ;
0 Comments
Answers (0)
See Also
Categories
Find more on Image Data Workflows in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!