gpt4 book ai didi

python - 这些函数在 TensorFlow 中是否等效?

转载 作者:太空宇宙 更新时间:2023-11-04 00:54:25 24 4
gpt4 key购买 nike

我是 TensorFlow 的新手,最近几天我一直在研究它。我想了解以下两个函数是否等价:

1.

softmax = tf.add(tf.matmul(x, weights), biases, name=scope.name)

2.

softmax = tf.nn.softmax(tf.matmul(x, weights) + biases, name=scope.name)

如果它们实际上不同,主要区别是什么?

最佳答案

softmax1 = tf.add(tf.matmul(x, weights), biases, name=scope.name)

不等于

softmax2 = tf.nn.softmax(tf.matmul(x, weights) + biases, name=scope.name)

因为 softmax1 根本没有 softmax 计算,而 softmax2 有。查看 tf.nn.softmax 的 Tensorflow API . general idea of a softmax是它通过重新缩放整个数据序列来确保它们的条目在区间 (0, 1) 内并且总和为 1 来规范化输入。

两个语句之间唯一相同的是基本计算。 + 做同样的事情 tf.add这样做 tf.add(tf.matmul(x, weights), biases) 等于 tf.matmul(x, weights) + biases.


编辑:添加一些说明(我想你真的不知道 softmax 在做什么?):

tf.matmul(x, W) + bias

计算 x(您的输入向量)和 W 当前层的权重之间的矩阵乘法。然后添加 bias

此计算模拟一层的激活。此外,您还有一个激活函数,例如转换激活函数的 sigmoid 函数。所以对于一层你通常做这样的事情:

h1 = tf.sigmoid(tf.matmul(x, W) + bias)

这里的h1就是这一层的激活。

softmax 操作只是重新缩放您的输入。例如,如果您在输出层上获得此激活:

output = [[1.0, 2.0, 3.0, 5.0, 0.5, 0.2]]

softmax 重新缩放此输入以拟合区间 (0, 1) 中的值并且总和等于 1:

tf.nn.softmax(output)
> [[ 0.01497873, 0.0407164 , 0.11067866, 0.81781083, 0.00908506,
0.00673038]]

tf.reduce_sum(tf.nn.softmax(output))
> 1.0

关于python - 这些函数在 TensorFlow 中是否等效?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35710938/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com