TensorFlow實現反池化

2021-09-20 06:58:02 字數 824 閱讀 7292

如下圖,將輸入的尺寸擴大為原來兩倍,輸入值填充到新的每個2×2網格的左上角,其餘三個填0。

tensorflow中沒有反池化函式,以下是**實現。

# 2x2反池化

def unpool

(value, name=

'unpool'):

with tf.

name_scope

(name)

as scope:

sh = value.

get_shape()

.as_list()

dim =

len(sh[1:

-1])

out =

(tf.

reshape

(value,[-

1]+ sh[

-dim:])

)for i in

range

(dim,0,

-1):

out = tf.

concat

([out, tf.

zeros_like

(out)

], i)

out_size =[-

1]+[s *

2for s in sh[1:

-1]]

+[sh[-1

]]out = tf.

reshape

(out, out_size)

return out

反池化原理

反池化是池化的逆操作,是無法通過池化的結果還原出全部的原始資料。因為池化的過程就只保留了主要資訊,捨去部分資訊。如果想從池化後的這些主要資訊恢復出全部資訊,則存在資訊缺失,這時只能通過補位來實現最大程度的資訊完整。池化有兩種 最大池化和平均池化,其反池化也需要與其對應。一 平均池化和反平均池化 首先...

TensorFlow 最大池化

由 aphex34 自己的作品 cc by sa 4.0,通過 wikimedia commons 共享 這是乙個最大池化的例子max pooling 用了 2x2 的濾波器 stride 為 2。四個 2x2 的顏色代表濾波器移動每個步長所產出的最大值。例如 1,0 4,6 生成6,因為6是這4個...

反卷積實現 tensorflow 實現

deconv解卷積,實際是叫做conv transpose,conv transpose實際是卷積的乙個逆向過程,tf中,編寫conv transpose 的時候,心中想著乙個正向的卷積過程會很有幫助。想象一下我們有乙個正向卷積 input shape 1,5,5,3 kernel shape 2,...