如何使用Tensorboard通过Keras功能API创建活动直方图

问题描述

我使用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,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中。

我该怎么办?

解决方法

您可以使用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

Tensorboard直方图-

model