python - 在 keras 模型中列出已编译的指标?
问题描述
我已经加载了一个 Keras 模型(或者只是创建并编译了它)。如何访问用于编译模型的指标对象列表?model.loss
我可以使用:和访问损失和优化器model.optimizer
。因此,我假设我会在 中找到指标列表model.metrics
,但这只会返回一个空列表。
解决方案
您必须运行模型至少 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>]
推荐阅读
- android - 无法获取 google-services-4.3.3 - Firebase 实施
- database - 在 SQLite 中处理 Blob
- laravel - Laravel Auth::login 不被尊重
- java - SpringBoot 集成测试因 java.awt.HeadlessException 而失败
- python - 使用 dask 将函数转换为自定义聚合
- angular - 无法在重新加载页面上获取 /login Angular 8 - 拒绝加载图像“/favicon.ico”,因为它违反了以下内容安全策略
- excel - 如何单击 Chrome 上的按钮将值粘贴到输入框中?
- python - 从工作簿处理到另一个工作簿时更改日期格式
- python - 如何测试数据帧最后一行中的特定值(使用-1)
- java - 创建名为 'org.springframework.aop.aspectj.annotation.AnnotationAwareAspectJAutoProxyCreator#0 的 bean 时出错?