在使用Adam优化器时,每次只返回一个类别的解决方法,可以在模型的输出层使用argmax函数来获取最大概率对应的类别索引。下面是一个示例代码:
import tensorflow as tf
from tensorflow.keras.optimizers import Adam
# 创建模型
model = tf.keras.Sequential([
# 添加模型层
# ...
])
# 编译模型
model.compile(optimizer=Adam(), loss='sparse_categorical_crossentropy', metrics=['accuracy'])
# 训练模型
model.fit(x_train, y_train, epochs=10)
# 预测类别
predictions = model.predict(x_test)
predicted_classes = tf.argmax(predictions, axis=1)
print(predicted_classes)
在上述示例中,我们使用了TensorFlow的Sequential模型创建了一个模型,并使用Adam优化器进行编译。在训练模型后,我们使用model.predict函数来进行预测,并使用tf.argmax函数获取最大概率对应的类别索引。最后,我们打印出了预测的类别索引。
请注意,这里假设模型的输出是一个概率分布,每个类别对应一个概率值。如果模型输出是一个单独的数值(如回归问题),则无法使用argmax函数获取类别索引。