8wDlpd.png
8wDFp9.png
8wDEOx.png
8wDMfH.png
8wDKte.png

TensorFlow 2.17.0 模型指标无法识别 - 显示 ['loss', 'compile_metrics'] 而不是预期指标

Abhishek-M 2月前

23 0

我正在尝试使用 TensorFlow 和 Keras 构建和训练一个简单的神经网络,但是我遇到了一个问题,即我在 model.compile 中指定的指标无法被正确识别。具体来说,

我正在尝试使用 TensorFlow 和 Keras 构建和训练一个简单的神经网络,但是我遇到了一个问题,即我在 model.compile 中指定的指标无法正确识别。

具体来说,在编译和训练模型后,当我打印指标和指标名称时,我看到的是 ['loss', 'compile_metrics'],而不是预期的指标 (['loss', 'accuracy', 'precision', 'recall'])。

这是我正在使用的代码

import tensorflow as tf
import numpy as np
from tensorflow import keras

# Create a simple model
def create_model():
    model = tf.keras.Sequential([
        tf.keras.layers.Dense(16, activation='relu', input_shape=(3,)),
        tf.keras.layers.Dense(1, activation='sigmoid')
    ])
    return model

# Test function to demonstrate `metrics` and `metrics_names`
def test_metrics_properties():
    # Create and compile the model
    model = create_model()
    model.compile(optimizer='adam',
                  loss=keras.losses.BinaryCrossentropy(),
                  metrics=[
                      tf.keras.metrics.BinaryAccuracy(name='accuracy'),
                      tf.keras.metrics.Precision(name='precision'),
                      tf.keras.metrics.Recall(name='recall')
                  ])

    # Check `metrics` and `metrics_names` before training
    print("Before training:")
    print("Metrics:", [m.name for m in model.metrics])
    print("Metrics names:", model.metrics_names)

    # Generate dummy data
    x = np.random.random((100, 3))
    y = np.random.randint(0, 2, size=(100, 1))

    # Train the model
    model.fit(x, y, epochs=5, verbose=0)

    # Check `metrics` and `metrics_names` after training
    print("\nAfter training:")
    print("Metrics:", [m.name for m in model.metrics])
    print("Metrics names:", model.metrics_names)

if __name__ == "__main__":
    test_metrics_properties()

这是我看到的输出:

/path/to/your/env/lib/python3.12/site-packages/keras/src/layers/core/dense.py:87:UserWarning:不要将 input_shape / input_dim 参数传递给层。使用顺序模型时,最好使用对象 Input(shape) 作为模型中的第一层。super()。 init (activity_regularizer=activity_regularizer, **kwargs)训练前:指标:['loss', 'compile_metrics']指标名称:['loss', 'compile_metrics']

训练后:指标:['loss','compile_metrics']指标名称:['loss','compile_metrics']

  • 我已确保在编译方法中正确定义了指标。
  • 对于我构建的其他神经网络模型,它有同样的问题,我可以访问训练历史中每个单独指标的值,但指标名称不是使用 model.metrics_name 的正确返回。
帖子版权声明 1、本帖标题:TensorFlow 2.17.0 模型指标无法识别 - 显示 ['loss', 'compile_metrics'] 而不是预期指标
    本站网址:http://xjnalaquan.com/
2、本网站的资源部分来源于网络,如有侵权,请联系站长进行删除处理。
3、会员发帖仅代表会员个人观点,并不代表本站赞同其观点和对其真实性负责。
4、本站一律禁止以任何方式发布或转载任何违法的相关信息,访客发现请向站长举报
5、站长邮箱:yeweds@126.com 除非注明,本帖由Abhishek-M在本站《tensorflow》版块原创发布, 转载请注明出处!
最新回复 (0)
返回
作者最近主题: