深度學習Matlab工具箱代碼註釋——cnnapplygrads.m

%%=========================================================================
%函數名稱:cnnapplygrads(),權值更新函數
%輸入參數:net,權值待更新的卷積神經網絡;opts,神經網絡訓練的相關參數
%輸出參數:
%算法流程:先更新卷積層的參數,再更新全連接層參數
%注意事項:
%%=========================================================================
function net = cnnapplygrads(net, opts)
for l = 2 : numel(net.layers)
    if strcmp(net.layers{l}.type, 'c')
        for j = 1 : numel(net.layers{l}.a)
            for ii = 1 : numel(net.layers{l - 1}.a)

                %這裏沒什麼好說的,就是普通的權值更新的公式:W_new = W_old - alpha * de/dW(誤差對權值導數)
                net.layers{l}.k{ii}{j} = net.layers{l}.k{ii}{j} - opts.alpha * net.layers{l}.dk{ii}{j};
            end
            net.layers{l}.b{j} = net.layers{l}.b{j} - opts.alpha * net.layers{l}.db{j};
        end
    end
end

net.ffW = net.ffW - opts.alpha * net.dffW;
net.ffb = net.ffb - opts.alpha * net.dffb;
end

原文鏈接

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章