我正在试验 TensorFlow 2.0 ,但在从 CategoricalAccuracy 损失函数获取有意义的值时遇到了问题。特别是,即使我更改数据,也总是返回相同的结果。
我准备了一个玩具示例来说明:
# import necessary modules
import numpy as np
import tensorflow as tf
# create an accuracy object
accuracy = tf.keras.metrics.CategoricalAccuracy()
# Create two arrays to be fed into the loss function
x = np.array([[0.1, 0.1, 0.8, 0.0, 0.0, 0.0],
[0.9, 0.0, 0.1, 0.0, 0.0, 0.0],
[0.0, 0.0, 0.0, 0.0, 0.9, 0.1]])
y = np.array([[0.0, 0.0, 1.0, 0.0, 0.0, 0.0],
[1.0, 0.0, 0.0, 0.0, 0.0, 0.0],
[0.0, 0.0, 0.0, 0.0, 1.0, 0.0]])
# Compute loss and print the result
accuracy.update_state(x, y)
print(accuracy.result().numpy())
我向x
输入y
和accuracy
的内容并不重要,我多次更改了值,但是却得到了:
1.0
我不明白自己在做什么错。