argmin_wcf_snn.m

来自「神经网络的工具箱, 神经网络的工具箱,」· M 代码 · 共 49 行

M
49
字号
function y = argmin_wcf_snn(net, data)%ARGMIN_WCF_SNN Zeroth order output estimate given data and network%               WCF_SNN cost function.%%   y_min = argmin_{y} {wcf_snn(Y,T) | Y = {y^1, ..., y^MU}; %                                      \forall \mu: y^{\mu} = y}%if ~strcmp(net.costFcn.name, 'wcf_snn')    error('First argument must be a net_struct with WCF_SNN cost function');endg = getg_snn(net, data);errf = net.costFcn.fn;[NL, MU] = size(data.T);if ~(isstr(errf) | (size(errf,1) == NL) )   error('Sub-sub-field costFcn.fn of first argument incorrect.');endy = zeros(NL,1);for i = 1:NL    if isstr(errf)       fi = errf;     else       fi = errf{i};    end    MU_rel = find(~isnan(g(i,:)));    g_rel = g(i,MU_rel);    t_rel = data.T(i,MU_rel);     switch (fi)      case 'se_snn',           y(i) = sum((g_rel .* t_rel),2) ./ sum(g_rel, 2);       case 'relerr_snn',           y(i) = sum(g_rel./t_rel, 2) ./ (sum(g_rel./(t_rel.*t_rel), 2));        case 'loglikelihood_snn',            y(i) = sum((g_rel .* t_rel),2) ./ sum(g_rel, 2);       case 'crosslogistic_snn',           y(i) = sum((g_rel .* t_rel),2) ./ sum(g_rel, 2);       case 'crossentropy_snn',           y(i) = sum((g_rel .* t_rel),2) ./ sum(g_rel, 2);       otherwise,	   err_msg = sprintf('Do not know how to handle error function: %s', fi);           error(err_msg);    endend

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?