[TensorFlow入门] softmax

为了给每个标签分配概率,然后使用这些概率对数据进行分类。我们需要使用softmax函数将logit转换为概率。

Softmax函数,或称归一化指数函数,是逻辑函数的一种推广。它能将一个含任意实数的K维的向量“压缩”到另一个K维实向量中,使得每一个元素的范围都在(0, 1)之间,并且所有元素的和为1。Sofemax维基百科

softmax的Python实现:

def softmax(x):
    """Compute softmax values for each sets of scores in x."""
    return np.exp(x) / np.sum(np.exp(x), axis=0)

你也可以直接使用TensorFlow内置的
tf.nn.softmax

下面是两个例子:

# logits is a one-dimensional array with 3 elements
logits = [1.0, 2.0, 3.0]
# softmax will return a one-dimensional array with 3 elements
print softmax(logits)
$ [ 0.09003057  0.24472847  0.66524096]
# logits is a two-dimensional array
logits = np.array([
    [1, 2, 3, 6],
    [2, 4, 5, 6],
    [3, 8, 7, 6]])
# softmax will return a two-dimensional array with the same shape
print softmax(logits)
$ [
    [ 0.09003057  0.00242826  0.01587624  0.33333333]
    [ 0.24472847  0.01794253  0.11731043  0.33333333]
    [ 0.66524096  0.97962921  0.86681333  0.33333333]
  ]
    原文作者:MAZE
    原文地址: https://zhuanlan.zhihu.com/p/25379972
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞