我训练了lenet网络。 当我为模型提取权重时,我有这样的小值:
[[ 0.06115171 -0.12328118 -0.05160818 -0.10334936 -0.01025871 -0.0503762
-0.07576288]]
我需要特定应用程序的整数值,有没有办法用整数值训练caffe,或者有任何比例因子,因为所有值都接近0?。 我正在寻找这样的过滤器:
(1 2 1)
(0 0 0)
(-1 -2 -1)
亲切的问候
答案 0 :(得分:1)
虽然我不使用caffe,但似乎你的输出是l2 normolized。即你的最后一层是L2规范化。
如果要获取整数,可以将sigmoid函数应用于当前进入L2范数层的输出。你仍然会获得浮点值,但它们将非常接近零或1.但是为了使这些整数值有意义,你还需要在某种目标函数中使用此输出并用它训练。例如。具有logits的交叉熵。
如果要获得不同的整数,可以在输出中添加另一个通道,其维度等于所需的总可能唯一整数。这样你仍然可以获得0和1,但他们会对你需要的整数值进行一次热编码。此外,如果你要这样做,你需要在这个额外的通道上应用softmax而不是sigmoid。