MatConvNet训练方法

今天阅读MatConvNet的代码又有了新的收获。

MatConvNet对于去噪或者超分辨率非常友善,因为他只有权重,而不管输入。

这样,哪怕你是对于一个大小为4040的图训练,也能够在nn的图上使用,非常方便。

MatConvNet提供了很方便的训练方法。

state.epoch = epoch ;

%记录当前epoch
state.learningRate = opts.learningRate(min(epoch, numel(opts.learningRate)));
%设置本次epoch的learning rate
opts.thetaCurrent = opts.theta(min(epoch, numel(opts.theta)));
if numel(opts.gpus) == 1
net = vl_simplenn_move(net, 'gpu') ;
end

state.train = opts.train(randperm(numel(opts.train))) ; %%% shuffle

%打乱顺序
[net, state] = process_epoch(net, state, imdb, opts, 'train');
%调用处理epoch
net.layers{end}.class =[];
%将最后一个layer设置为空?
net = vl_simplenn_move(net, 'cpu');
%%% save current model
save(modelPath(epoch), 'net')
%保存当前epoch的网络数据

posted on 2017-07-04 13:00  tendence  阅读(481)  评论(0编辑  收藏  举报