首页 > 解决方案 > 在 keras 模型中列出已编译的指标?

问题描述

我已经加载了一个 Keras 模型(或者只是创建并编译了它)。如何访问用于编译模型的指标对象列表?model.loss我可以使用:和访问损失和优化器model.optimizer。因此,我假设我会在 中找到指标列表model.metrics,但这只会返回一个空列表。

标签: pythontensorflowkeras

解决方案


您必须运行模型至少 1 个 epoch 才能使用指标名称:

import numpy as np
import tensorflow as tf
x = np.random.uniform(0,1, (37432,512))
y = np.random.randint(0,2, (37432,1))
model = tf.keras.Sequential()
model.add(tf.keras.layers.Dense(256, activation = 'relu'))
model.add(tf.keras.layers.Dense(2, activation='softmax'))

model.compile(loss="sparse_categorical_crossentropy",
              optimizer='adam',
              metrics=['accuracy'])
print(model.metrics_names)
_ = model.fit(x= x, y = y, validation_split=0.2, verbose = 0)
print(model.metrics_names)

输出:

[]
['loss', 'accuracy']

对于公制对象:

model.metrics[1:]

输出:

[<tensorflow.python.keras.metrics.MeanMetricWrapper at 0x7fbe702aee50>]

推荐阅读