是否可以将神经网络转换为单精度网络。我尝试使用以下方法将所有权重转换为单精度:
net.IW {1,1}(1,1)=单(net.IW {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
使用此函数可以粗略估计网络的定点实现的近似误差。 如果有人对此有更好的解决方案,请告诉我!
干杯, 米克