簡體   English   中英

Keras Conv2D 解碼器

[英]Keras Conv2D decoder

我正在處理不同大小(x,y)的圖像。 當使用UpSampling2DMaxPooling2D它不重建它很好由於x-暗淡不等於y-暗淡。 它適用於 x=y(例如 28x28),但在我的情況下(388x45)。 我怎么解決這個問題。

input_img = Input(shape=(388, 45, 1))  

x = Conv2D(32, (3, 3), activation='relu', padding='same')(input_img)
x = MaxPooling2D((2, 2), padding='same')(x)

x = UpSampling2D((2, 2))(x)
x = Conv2D(1, (3, 3), activation='sigmoid', padding='same')(x)

對此的解決方案是在上采樣層之后添加ZeroPadding2D以達到所需的形狀。

實際上,如果您有圖像的形狀 ((19,30)),為了獲得偶數,例如在第一個位置,您可以添加:

x = UpSampling2D((2, 2))(x) #say here the shape is (19,30) after upsampling but you need (20,30)
x = ZeroPadding2D(((1, 0), (0, 0)))(x) # change to ZeroPadding2D(((0, 0), (0, 1))) if you want second dimension to increase by 1

您可以在此答案中找到 ZeroPadding2D 的完美用法: keras 中的 segnet:新數組的總大小必須保持不變錯誤

暫無
暫無

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

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