我目前正在训练一个网络(CNN是用Tensorflow实现的)来对超过3个类别进行分类,问题是我最终得到的分数如下:
[ -20145.36, 150069, 578456.3 ].我想要0到1之间的分数(某种概率)。
起初,我考虑使用sigmoid函数,但后来我发现这个讨论甚至没有提到:
你建议我怎么做才能在每堂课的分数从0到1之间?
谢谢
发布于 2017-04-21 11:16:55
作为最后一层,您总是使用softmax来获得n级分类分数.因此,您有很多选项,如tensorflow分类文档中提到的。
最简单的方法是使用tf.nn.softmax()
softmax = exp(logits) / reduce_sum(exp(logits), dim)示例:
In [63]: ar = np.array([ -20145.36, 150069, 578456.3 ])
In [64]: scores = tf.nn.softmax(ar)
In [65]: sess = tf.InteractiveSession()
In [66]: scores.eval()
Out[66]: array([ 0., 0., 1.])https://stackoverflow.com/questions/43540872
复制相似问题