【问题标题】:Tensorflow Keras Metrics Not showingTensorFlow Keras Metrics 未显示
【发布时间】:2020-09-18 19:18:21
【问题描述】:

我有一个简单的神经网络

import tensorflow as tf
from tensorflow.keras.models import Sequential
from tensorflow.keras.layers import Dense, Flatten, Conv2D, MaxPooling2D, MaxPool2D
model = Sequential([
    Conv2D(16,(3,3),padding='same', input_shape=(1,28,28),data_format='channels_first'),
    MaxPooling2D((3,3), data_format='channels_first')
])
print(model.summary())

模型总结是

Model: "sequential_4"
_________________________________________________________________
Layer (type)                 Output Shape              Param #   
=================================================================
conv2d_2 (Conv2D)            (None, 16, 28, 28)        160       
_________________________________________________________________
max_pooling2d_2 (MaxPooling2 (None, 16, 9, 9)          0         
=================================================================
Total params: 160
Trainable params: 160
Non-trainable params: 0
_________________________________________________________________
None

并编译为

opt = tf.keras.optimizers.Adam(learning_rate=0.005)
model.compile(optimizer=opt,
              loss=tf.keras.losses.BinaryCrossentropy(),
              metrics=[tf.keras.metrics.BinaryAccuracy(),
              tf.keras.metrics.MeanAbsoluteError()]
              )

现在,当我打印模型属性时,它会给出一个空的指标列表。为什么会这样?

print(f"{model.metrics}\n{model.optimizer},\n,{model.loss}\n{model.optimizer.lr}")

这是输出

[]
<tensorflow.python.keras.optimizer_v2.adam.Adam object at 0x000001FB10F2EDC8>,
,<tensorflow.python.keras.losses.BinaryCrossentropy object at 0x000001FB10F2EEC8>
<tf.Variable 'learning_rate:0' shape=() dtype=float32, numpy=0.005>

【问题讨论】:

  • 我无法重现您的问题。你能提供更多细节吗?
  • 我想查看模型的指标,因为我正在传递 2 个指标,其中分别是二进制精度和平均绝对误差。我不想做任何具体的事情,只是检查一下。
  • 我的意思是你的代码的更多细节。因为我运行它并且它对我有用。
  • 我想知道为什么它对我不起作用
  • 这是 TF 2.2 版本中的问题。我在 github 中打开了this 问题。

标签: python tensorflow keras


【解决方案1】:

目前,this 是 Tensorflow 版本 2.2.0 中的一个错误。以后可能会修复

【讨论】:

  • 我仍然可以使用链接的作者代码重现此错误。有更新吗?
【解决方案2】:

模型将在训练后显示指标。

所以只需运行model.fitmodel.train_on_batch,然后再次尝试打印。指标应该会出现。

Source.

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-10-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-08-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多