【问题标题】:How to use Tensorboard to create histogram of acitvations with Keras functional API如何使用 Tensorboard 通过 Keras 功能 API 创建活动直方图
【发布时间】:2020-08-28 23:17:02
【问题描述】:

我使用 Keras 功能 API 创建以下网络:

input = Input(shape=input_shape)
x = Conv2D(filters=32, kernel_size=(3, 3), activation='relu')(input)
tf.summary.histogram(name="conv1", data=x)
x = Conv2D(filters=64, kernel_size=(3, 3), activation='relu')(x)
tf.summary.histogram(name="conv2", data=x)
x = MaxPool2D(pool_size=(2, 2))(x)
x = Flatten()(x)
x = Dense(units=128, activation='relu')(x)
tf.summary.histogram(name="dense1", data=x)
x = Dense(units=num_classes, activation='softmax')(x)
tf.summary.histogram(name="demse1", data=x)
model = Model(inputs=inp, outputs=x)

我使用tf.summary.histogram 来提取有关不同层激活的信息。但是,图层的激活直方图不会出现在 Tensorboard 中。

我做错了什么?

【问题讨论】:

    标签: python tensorflow keras tensorboard


    【解决方案1】:

    您可以使用 tensorboard 回调来获取直方图。

    tensorboard_callback = tf.keras.callbacks.TensorBoard(
        log_dir='logs', histogram_freq=1, profile_batch = 0
    )
    
    model.fit(x,y, epochs = 5, callbacks = tensorboard_callback)
    

    有关完整文档,请参阅here

    张量板直方图 -

    【讨论】:

    • 这里没有显示如何为网络激活创建直方图。
    • 对于我的神经网络中的每一层,我都有偏差、内核(权重)、预激活和激活。您的图像仅显示偏差和内核信息。如何另外绘制激活的直方图?
    • 激活内部没有存储值来可视化。它只是一个计算激活值的函数。
    • 我知道。但是应该可以使用回调在 epoch 结束时为当前批次创建激活直方图。
    • 尽管tf.keras.callbacks.TensorBoard 在文档中说它会生成“激活直方图”,但它实际上并没有计算这些。请参阅以下 TensorFlow 问题:github.com/tensorflow/tensorflow/issues/42027github.com/tensorflow/tensorflow/issues/39755
    猜你喜欢
    • 2018-10-12
    • 2023-03-30
    • 2018-05-08
    • 1970-01-01
    • 1970-01-01
    • 2019-02-27
    • 1970-01-01
    • 1970-01-01
    • 2019-02-01
    相关资源
    最近更新 更多