簡體   English   中英

Keras TensorBoard 可視化轉換內核

[英]Keras TensorBoard visulize Conv Kernels

我使用 Keras 和 TensorFlow 作為后端。 現在我想使用 TensorBoard 回調來可視化我的卷積層內核。 但是我只能看到 TensorBoard 中的第一個 conv 層內核以及最后的 Dense 層。 對於其他 conv 層,我只能使用偏差值而不是內核。

這是我的 Keras 模型示例代碼。

tb = TensorBoard(
    log_dir=log_dir, 
    histogram_freq=epochs, 
    write_images=True)

# Define the DNN
model = Sequential()
model.add(Conv2D(filters=16, kernel_size=3, input_shape=(width, height, depth), name="conv1"))
model.add(Activation("relu"))
model.add(Conv2D(filters=16, kernel_size=3, name="conv2"))
model.add(Activation("relu"))
model.add(MaxPool2D())

model.add(Conv2D(filters=32, kernel_size=3, name="conv3"))
model.add(Activation("relu"))
model.add(Conv2D(filters=32, kernel_size=3, name="conv4"))
model.add(Activation("relu"))
model.add(MaxPool2D())

model.add(Flatten())
model.add(Dense(128))
model.add(Activation("relu"))
model.add(Dense(num_classes, name="features"))
model.add(Activation("softmax"))

# Print the DNN layers
model.summary()

# Train the DNN
lr = 1e-3
optimizer = Adam(lr=lr)
model.compile(loss="categorical_crossentropy", optimizer=optimizer, metrics=["accuracy"])
model.fit(x_train, y_train, verbose=1, 
batch_size=batch_size, epochs=epochs, 
validation_data=(x_test, y_test), 
callbacks=[tb])

這就是我在 TensorBoard 中看到的。 (我最小化了我的第一個卷積層的內核) TB Screenshot

我缺少什么來可視化我的所有內核?

這是 Tensorboard 回調的預期(但未在文檔中指定)行為。 請參閱Tensorboard GitHub 頁面的相關錯誤報告的答案

TensorBoard Keras 回調調用 tf.summary.image 而不覆蓋 max_outputs 的默認值,因此此時無法通過回調可視化前 3 個內核。

您需要使用自己的tf.summary.image調用來可視化內核。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM