Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/218.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python Keras softmax输出和精度_Python_Tensorflow_Keras_Neural Network - Fatal编程技术网

Python Keras softmax输出和精度

Python Keras softmax输出和精度,python,tensorflow,keras,neural-network,Python,Tensorflow,Keras,Neural Network,这是Keras模型的最后一层 model.add(Dense(3, activation='softmax')) model.compile(loss='categorical_crossentropy', optimizer='adam', metrics=['accuracy']) 我知道softmax层的输出是一个数组,概率总和为1,例如[0.1,0.4,0.5] 我有一个关于使用精度作为度量标准的问题 e、 例如,当真实类为[0,0,1]且预测概率为[0.1,0.4,0.5]时,即使0

这是Keras模型的最后一层

model.add(Dense(3, activation='softmax'))
model.compile(loss='categorical_crossentropy', optimizer='adam', metrics=['accuracy'])
我知道softmax层的输出是一个数组,概率总和为1,例如
[0.1,0.4,0.5]

我有一个关于使用精度作为度量标准的问题

e、 例如,当真实类为
[0,0,1]
且预测概率为
[0.1,0.4,0.5]
时,即使
0.5
为最大概率,该预测的准确性也应为
0
,因为
0.5!=1
。对吗

更一般地说,当输出层激活为
softmax
时,我们通常会得到浮动概率预测,并且在很小的机会内我们会得到整数概率预测,如
[0,0,1]
。因此,当使用
softmax
作为激活时,我们不能使用
准确性作为度量。对吗

e、 例如,当真实类为[0,0,1]且预测概率为[0.1,0.4,0.5]时,即使0.5是最大概率,该预测的准确性也应为0,因为0.5!=1.对吗

否。将具有最大值的索引视为模型的预测。因此,在您的示例中,此示例预测将有助于提高准确性。这通常被称为顶级精度。在图像分类中,也经常使用前5名的精度(softmax层中前5名的最大值被视为对NN的猜测,并考虑其精度)

更一般地说,当输出层激活为softmax时,我们通常会得到浮动概率预测,并且在很小的机会内我们会得到整数概率预测,如[0,0,1]。因此,当使用softmax作为激活时,我们不能使用精度作为度量。对吗


从技术上讲,您永远不会获得softmax层输出的整数值,因为该类型是float。但是是的,获得[0.0,0.0,1.0]的机会非常小。你的假设是不正确的,因为前提不成立。然而,当使用Softmax作为神经网络的分类层时,准确度是一个有效的指标。

我刚刚尝试了
模型。评估(x=[[1,2,3.]],y=[[0,0,1,0]],)
它按预期工作,成功地预测了作为其类别的最大值指数。谢谢你的回答。