Matlab NN-Toolbox:如何将神经网络转换为单精度

时间:2014-06-13 14:35:41

标签: matlab neural-network

是否可以将神经网络转换为单精度网络。我尝试使用以下方法将所有权重转换为单精度:

net.IW {1,1}(1,1)=单(net.IW {1,1}(1,1));

没用。这里有任何建议如何做到这一点?

1 个答案:

答案 0 :(得分:0)

好的,因为没有人知道这是我到目前为止所做的:

function [ fi_net ] = conv2single( net, w , f )
%CONV2SINGLE Convert weights, biases of neural net to single precision
%   We are using fi objects,

% create fixed_point net, copy of the given net

fi_net = net;

% extract weights and bias from net
% convert to signed fixed point object of wordlength w, fraction length f

IW=fi(net.IW{1,1},1,w,f);
LW=fi(net.LW{2,1},1,w,f);
b_1=fi(net.b{1},1,w,f);
b_2=fi(net.b{2},1,w,f);

% write converted data back to fixedpoint net

fi_net.IW{1,1}=IW.data;
fi_net.LW{2,1}=LW.data;
fi_net.b{1}=b_1.data;
fi_net.b{2}=b_2.data;

end

使用此函数可以粗略估计网络的定点实现的近似误差。 如果有人对此有更好的解决方案,请告诉我!

干杯,   米克