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 + -
显示快捷键?