Python 在keras模型中列出已编译的度量?

Python 在keras模型中列出已编译的度量?,python,tensorflow,keras,Python,Tensorflow,Keras,我已经加载了一个Keras模型(或者只是创建并编译了它)。如何访问用于编译模型的度量对象列表? 我可以使用:model.loss和model.optimizer访问loss和优化器。 因此,我假设我将在model.metrics中找到度量列表,但这只返回一个空列表。您必须运行该模型至少1个历元,才能获得可用的度量名称: import numpy as np import tensorflow as tf x = np.random.uniform(0,1, (37432,512)) y = np

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

您必须运行该模型至少1个历元,才能获得可用的度量名称:

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']
[<tensorflow.python.keras.metrics.MeanMetricWrapper at 0x7fbe702aee50>]
对于公制对象:

model.metrics[1:]
输出:

[]
['loss', 'accuracy']
[<tensorflow.python.keras.metrics.MeanMetricWrapper at 0x7fbe702aee50>]
[]

model.metrics\u names
返回度量名称和损失名称的列表。我要找的是度量对象列表。在这种情况下,我要查找的输出应该是:
[]
请参阅更新的答案。第一个组件将是损失对象。下一个组件将是编译中指定的度量对象。