如下圖,將輸入的尺寸擴大為原來兩倍,輸入值填充到新的每個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,...