深度学习Matlab工具箱代码注释之cnnapplygrads.m

时间:2022-04-24
本文章向大家介绍深度学习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  

量化投资与机器学习

知识、能力、深度、专业

勤奋、天赋、耐得住寂寞