簡體   English   中英

使用 keras.utils.plot_model 構建的 Tensorflow model 圖不顯示串聯

[英]The Tensorflow model graph built with keras.utils.plot_model does not show concatenations

我正在嘗試構建一個密集的塊,所以我寫了一個這樣的簡單示例:

input_layer = Input(shape=(HEIGHT, WIDTH, 3))

layer1 = Conv2D(1, (3, 3), activation="relu", padding="same")(input_layer)
layer2 = Conv2D(2, (3, 3), activation="relu", padding="same")(layer1)
layer3 = Conv2D(3, (3, 3), activation="relu", padding="same")(layer2)
layer4 = Conv2D(4, (3, 3), activation="relu", padding="same")(layer3)

concatenate([layer3, layer2])

concatenate([layer4, layer3])
concatenate([layer4, layer2])

model = keras.Model(inputs=input_layer, outputs=layer4, name="Dense_block")
keras.utils.plot_model(model, "info.png", show_shapes=True)

但我得到的圖表不包含任何連接:

在此處輸入圖像描述

我的代碼可能有問題嗎?

由於調用 model = keras.Model(inputs=input_layer, outputs=layer4 model = keras.Model(inputs=input_layer, outputs=layer4, name="Dense_block") ,連接了第 1 層到第 4 層,並且是 model 的一部分。 您的連接操作未連接。

您可以通過定義一個新層來解決此問題,例如layer5 = concatenate([layer3, layer2])並將該層傳遞給 model 語句中的outputs

對於連接本身,我建議您使用 Keras 的連接層: tf.keras.layers.Concatenate 參考這里。

layer5 = tf.keras.layers.Concatenate()([layer3, layer2])
model = keras.Model(inputs=input_layer, outputs=layer5, name="Dense_block")

暫無
暫無

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

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