提问人:javeqx 提问时间:10/5/2023 更新时间:10/5/2023 访问量:125
tensorflow 中的 F1 分数
F1 Score in tensorflow
问:
在训练模型时,我试图在 ResNeXt 和 ResNet 上获得二元分类问题的 f1 分数。当我使用 tf.keras.metrics.F1Score 函数时,我在尝试拟合模型时出现以下错误:
ValueError:FBetaScore 需要形状为 (batch_size, output_dim) 的 2D 输入,output_dim完全定义 (而不是 None) 。接收的输入形状:y_pred.shape=(None, 2) 和 y_true.shape=(None, None)。
但是,如果我使用 tfa.metrics.F1Score 函数,我会获得输出而不会出现任何错误。为什么会这样?这两个 f1 分数函数有什么区别?
此外,在使用 tfa.metrics.F1Score 时,我还打印了精度、召回率和准确性值。它们都有相同的价值,怎么会这样呢?
这是我编译模型的方式:
f1 =tfa.metrics.F1Score(num_classes=2, average='weighted')
f1score = tf.keras.metrics.F1Score(average="weighted",threshold=0.5)
model.compile (
loss = 'categorical_crossentropy',
optimizer="adam" ,metrics=[ f1score, "Precision", "Recall"]
)
我如何适合我的模型:
history = model.fit(
training_set,
validation_data = val_set,
epochs = 5,
steps_per_epoch = 95,
validation_steps = 95
)
制作trainig_Set和val_set:
training_set = train_datagen.flow_from_directory(
train_Path,
target_size = IMAGE_SIZE,
batch_size = 32,
class_mode = 'categorical'
)
答: 暂无答案
评论