softmax激活函数解释
softmax activation function interpretation
我在 tensorflow 中有一个神经网络,它有三个隐藏层,输出层有两个神经元,它由一个热编码值表示(可能输出 0 或 1,所以 [1, 0] 和 [0 , 1]).
输入层由 60 个神经元组成,隐藏层内的激活是 reLU,我使用学习率为 0.001 的 AdamOptimizer。
当我尝试计算网络模型的结果时遇到问题:
预测 - 代表网络输出的变量
prediction_run = sess.run(prediction, feed_dict={x: mydata.reshape(1, 60)})
print("Original class: ", [1, 0], "Predicted values: ", prediction_run)
这将输出:
原class:[1.0.]预测值:[[1.00000000e+00 3.35827508e-08]]
因为我m using the softmax in the final layer, isn't this supposed to be an output that will sum up to 1? Like a probability or something. I
我无法理解那些预测的数字,因为 softmax 应该转换它们,但它们不是。
self.tf.nn.softmax(self.tf.matmul(last_hidden_layer_activation, `output_layer_weights) + output_layer_biases)
有什么想法吗?
你是对的。 Softmax
输出总和应该为 1。
问题是浮点数。在浮点数的情况下,没有绝对零这样的东西。浮点总是有一点不确定性。更多信息 here
我在 tensorflow 中有一个神经网络,它有三个隐藏层,输出层有两个神经元,它由一个热编码值表示(可能输出 0 或 1,所以 [1, 0] 和 [0 , 1]). 输入层由 60 个神经元组成,隐藏层内的激活是 reLU,我使用学习率为 0.001 的 AdamOptimizer。 当我尝试计算网络模型的结果时遇到问题:
预测 - 代表网络输出的变量
prediction_run = sess.run(prediction, feed_dict={x: mydata.reshape(1, 60)})
print("Original class: ", [1, 0], "Predicted values: ", prediction_run)
这将输出: 原class:[1.0.]预测值:[[1.00000000e+00 3.35827508e-08]]
因为我m using the softmax in the final layer, isn't this supposed to be an output that will sum up to 1? Like a probability or something. I
我无法理解那些预测的数字,因为 softmax 应该转换它们,但它们不是。
self.tf.nn.softmax(self.tf.matmul(last_hidden_layer_activation, `output_layer_weights) + output_layer_biases)
有什么想法吗?
你是对的。 Softmax
输出总和应该为 1。
问题是浮点数。在浮点数的情况下,没有绝对零这样的东西。浮点总是有一点不确定性。更多信息 here