【问题标题】:Is it possible to override the progress bar of TensorFlow's keras?是否可以覆盖 TensorFlow 的 keras 的进度条?
【发布时间】:2020-04-25 20:31:34
【问题描述】:

在过去的几天里,我一直在观察进度条中打印丢失的奇怪行为。事实证明,奇怪的行为是由于the default progress bar of keras displays a moving average of the losses(而不是每个时期的实际损失)。

那么,是否可以覆盖 TensorFlow 的 keras 的进度条?我不这么认为。

有一个类tf.keras.utils.Progbar 包含参数stateful_metrics,这可能是我需要的,但fit 似乎没有提供覆盖进度条或将行为从移动平均更改为的选项纪元/步骤的实际损失。你建议什么替代方案?随意用一些可重现的代码在下面写一个答案。

【问题讨论】:

    标签: tensorflow keras tensorflow2.0 tf.keras


    【解决方案1】:

    听起来你想要的应该通过tf.keras.callbacks.ProgbarLogger来完成。从理论上讲,它应该按照以下示例中的说明工作,但是,目前有一个 issuetf.keras.callbacks.ProgbarLogger

    import tensorflow as tf
    from tensorflow.keras import Sequential
    from tensorflow.keras.layers import Dense, Flatten
    
    (x_train, y_train), (x_test, y_test) = tf.keras.datasets.mnist.load_data()
    x_train, x_test = x_train / 255, x_test / 255
    
    model = tf.keras.Sequential([
        Flatten(),
        Dense(128, activation='relu'),
        Dense(10)
    ])
    
    loss_fn = tf.keras.losses.SparseCategoricalCrossentropy(from_logits=True)
    model.compile(optimizer='adam', loss=loss_fn, metrics=['accuracy'])
    progbar_callback = tf.keras.callbacks.ProgbarLogger(stateful_metrics="accuracy")
    model.fit(x_train, y_train, callbacks=[progbar_callback])
    

    【讨论】:

      猜你喜欢
      • 2019-03-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-04-06
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多