tensorflow 中的 F1 分数

F1 Score in tensorflow

提问人:javeqx 提问时间:10/5/2023 更新时间:10/5/2023 访问量:125

问:

在训练模型时,我试图在 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' 
)
Python TensorFlow 精确 ResNet

评论


答: 暂无答案