c – Caffe的Softmax层如何计算概率值?
有谁知道在Caffe softmax层内发生了什么计算?
我正在使用预先训练好的网络,最后是softmax图层. 在测试阶段,对于图像的简单前进,倒数第二层(“InnerProduct”)的输出如下: 最后一层(“Softmax”)输出是以下值: 如果我在内积层的输出上应用Softmax(使用外部工具,如matlab),我会得到以下值: 后者对我有意义,因为概率加起来为1.0(注意Caffe的Softmax层值的总和> 1.0). 显然,Caffe中的softmax层不是一个直接的Softmax操作. (我认为它没有任何区别,但我只会提到我正在使用预先训练过的flickr风格网络,请参阅说明here). 编辑: 这是proto txt中最后两层的定义.请注意,最后一层的类型是“Softmax”. layer { name: "fc8_flickr" type: "InnerProduct" bottom: "fc7" top: "fc8_flickr" param { lr_mult: 10 decay_mult: 1 } param { lr_mult: 20 decay_mult: 0 } inner_product_param { num_output: 20 weight_filler { type: "gaussian" std: 0.01 } bias_filler { type: "constant" value: 0 } } } layer { name: "prob" type: "Softmax" bottom: "fc8_flickr" top: "prob" } 解决方法
你得到的结果很奇怪.
“Softmax”层的前向方法执行的操作是: > computing the maximal value of the input vector (注意,执行前两个步骤是为了防止计算中的溢出). (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |