1. 程式人生 > >Deconvolution, transpose_convolution,一步一步解釋逆卷積

Deconvolution, transpose_convolution,一步一步解釋逆卷積

一步一步解釋逆卷積:

上圖中影象大小為2x2,卷積核大小(kernel size)為3x3, 步長(strides)為2,填充(padding)1;

那麼逆卷積操作:

將原始影象的一個畫素乘上卷積窗,移動一個步長,將重疊的區域作疊加運算。

注意的是:

在卷積中,卷積核大小隻影響視野大小,與特徵的提取的細膩程度有關係;

而步長決定了卷積後的空間解析度,而輸出通道數決定卷積核的數量。

相反在逆卷積中同樣是個道理。步長決定了卷積後的空間解析度。

因此上述步長為2,相當於原始影象擴大了2倍。但是未經修剪的卷積之後的影象大小為5x5(k+s(N-1)=3+2*(2-1)=5),

在Tensorflow上驗證:

import tensorflow as tf
import numpy as np

def test_conv2d_transpose():
    # input batch shape = (1, 2, 2, 1) -> (batch_size, height, width, channels) - 2x2x1 image in batch of 1
    x = tf.constant(np.array([[
        [[1], [2]], 
        [[3], [4]]
    ]]), tf.float32)

    # shape = (3, 3, 1, 1) -> (height, width, input_channels, output_channels) - 3x3x1 filter
    f = tf.constant(np.array([
        [[[1]], [[1]], [[1]]], 
        [[[1]], [[1]], [[1]]], 
        [[[1]], [[1]], [[1]]]
    ]), tf.float32)

    conv = tf.nn.conv2d_transpose(x, f, output_shape=(1, 4, 4, 1), strides=[1, 2, 2, 1], padding='SAME')

    with tf.Session() as session:
        result = session.run(conv)

    assert (np.array([[
        [[1.0], [1.0],  [3.0], [2.0]],
        [[1.0], [1.0],  [3.0], [2.0]],
        [[4.0], [4.0], [10.0], [6.0]],
        [[3.0], [3.0],  [7.0], [4.0]]]]) == result).all()

動圖來自於這裡:[conv_arithmetic](https://github.com/DreamPurchaseZnz/Tensorflow_Learning)


上面的例子中原因在於stride=2

相關推薦

Deconvolution, transpose_convolution,解釋

一步一步解釋逆卷積: 上圖中影象大小為2x2,卷積核大小(kernel size)為3x3, 步長(strides)為2,填充(padding)1; 那麼逆卷積操作: 將原始影象的一個畫素乘上卷積窗,移動一個步長,將重疊的區域作疊加運算。 注意的是: 在卷積

學用Tensorflow構建神經網路

摘要: 本文主要和大家分享如何使用Tensorflow從頭開始構建和訓練卷積神經網路。這樣就可以將這個知識作為一個構建塊來創造有趣的深度學習應用程式了。 0. 簡介 在過去,我寫的主要都是“傳統類”的機器學習文章,如樸素貝葉斯分類、邏輯迴歸和Perceptron演算法。在過去的

文詳解

文章目錄 一文詳解卷積和逆卷積 卷積運算 單通道 多通道 卷積運算的引數計算 逆卷積 卷積運算的矩陣實現 參考資料 一文詳解卷積和逆卷積 卷積神經

文帶你看懂神經網路(CNN)讓你意想不到的10創新idea

    全文摘要 卷積神經網路(CNN)可以說是深度學習發展的一個縮影,特別是現在在計算機視覺方面已經得到了非常成熟的應用,在目標檢測、目標追蹤等方面也是獨領風騷,本文將講述卷積神經網路近些年來的發展歷程,以及它到底創新在什麼地方。本文略長,看完大約3

文讓你徹底瞭解神經網路

卷積神經網路(Convolutional Neural Network,CNN)是一種前饋神經網路,它的人工神經元可以響應一部分覆蓋範圍內的周圍單元,對於大型影象處理有出色表現。 它包括卷積層(convolutional layer)和池化層(pooling layer)。 對比:卷積神經網路、

反捲 轉置(Transposed Convolution;Fractionally Strided Convolution;Deconvolution) 輸出維度shape計算

正常卷積運算: 如上圖:4x4的輸入,卷積Kernel為3x3, ,輸出為2x2。其計算可以理解為: 輸入矩陣展開為4*4=16維向量,記作x 輸出矩陣展開為2*2=4維向量,記作y 卷積核C為如下矩陣: 卷積運算可表示為y = Cx(可以對照

詳細解釋CNN神經網路各層的引數和連線個數的計算

積神經網路是一個多層的神經網路,每層由多個二維平面組成,而每個平面由多個獨立神經元組成。        圖:卷積神經網路的概念示範:輸入影象通過和三個可訓練的濾波器和可加偏置進行卷積,濾波過程如圖一,卷積後在C1層產生三個特徵對映圖,然後特徵對映圖中每組的四個畫素再進行

詳細解釋CNN神經網路各層的引數和連結個數的計算

卷積神經網路是一個多層的神經網路,每層由多個二維平面組成,而每個平面由多個獨立神經元組成。        圖:卷積神經網路的概念示範:輸入影象通過和三個可訓練的濾波器和可加偏置進行卷積,濾波過程如圖

圖示理解運算、運算、Tensorflow、tf.nn.conv2d_transpose、Conv2DSlowBackpropInput: Size of out_backprop doesn

卷積運算 這裡以二維卷積為例討論: 正方形輸入(i1=i2=i) 正方形卷積核大小(k1=k2=k) 相同的步長(s1=s2=s) 相同的零填充(p1=p2=p) 第一種情況: s=1,p=0,i=4,k=3 從輸入影象的最右邊開始,一個

CSG:清華大學提出通過分化類特定核來訓練可解釋網路 | ECCV 2020 Oral

> 論文提出類特定控制門CSG來引導網路學習類特定的卷積核,並且加入正則化方法來稀疏化CSG矩陣,進一步保證類特定。從實驗結果來看,CSG的稀疏效能夠引導卷積核與類別的強關聯,在卷積核層面產生高度類相關的特徵表達,從而提升網路的效能以及可解釋性   來源:曉飛的演算法工程筆記 公眾號 **論

[zt]學習Vim 全圖解釋 (強烈推薦)

重劍無鋒,大巧不工 常有人詢問,程式設計需要天賦嗎?啊,任何事情走往極致,都需要天賦。任何一個軟體產品的極致成功,都需要創意天賦、程式設計天賦、管理天賦、行銷天賦……。然而,只需用心模仿,再加一點匠心獨具,任何人都能夠把程式設計路走得穩當順遂。能讀千賦則善賦,能觀千劍則曉劍,巧者不過習者之門也。

小例子解釋“函式呼叫過程中棧的變化過程”

1 問題描述   在此之前,我對C中函式呼叫過程中棧的變化,僅限於瞭解有好幾種引數的入棧順序,其中的按照形參逆序入棧是比較常見的,也僅限於瞭解到這個程度,但到底在一個函式A裡面,呼叫另一個函式B的過程中,函式A的棧是怎麼變化的,實參是怎麼傳給函式B的,函式B又是怎麼給函式A返回值的,這些問題都不能很明白的

教你如何重裝筆記本電腦系統?

splay 出錯 經歷 fff 過程 rep 聯想 isp pre 本文標簽: 電腦技巧 重裝筆記本電腦系統 重裝系統 重裝dell聯想宏碁電腦系統 原文地址:http://whosmall.com/?post=461 不知不覺中,已在程序猿這個職業中瘋狂熬過去了3年時間

CentOS 7 搭建LAMP

centos7 lamp一、準備環境1、系統版本[[email protected]/* */ ~]# cat /proc/versionLinux version 3.10.0-514.16.1.el7.x86_642、關防火墻[[email protected]/* */ ~]#

搭建客服系統 (4) 客戶列表 - JS($.ajax)調用WCF 遇到的各種坑

clu web operation script ont javascrip -1 mod ima 閱讀目錄 1 創建WCF服務 2 調用WCF 3 配置 4 遇到的各種坑 本文以一個生成、獲取“客戶列表”的demo來介紹如何用js調用wcf,以及遇到的各種問題。

[透析] 神經網絡CNN究竟是怎樣工作的?(轉)

caff 素數 aec near chris line 旋轉 均值 水平 視頻地址:https://www.youtube.com/embed/FmpDIaiMIeA 轉載:http://www.jianshu.com/p/fe428f0b32c1 文檔參閱:pdf

用Html5/CSS3做Winform,教你搭建CefSharp開發環境(附JavaScript異步調用C#例子,及全部源代碼)上

轉載 界面設計 右鍵 異步 一個 由於 編寫 scrip 調用 本文為雞毛巾原創,原文地址:http://www.cnblogs.com/jimaojin/p/7077131.html,轉載請註明 CefSharp說白了就是Chromium瀏覽器的嵌入式核心,我們用此開發W

跟我學習hadoop(5)----hadoop Map/Reduce教程(2)

submit calc run submitjob des conf sam ner 打開 Map/Reduce用戶界面 本節為用戶採用框架要面對的各個環節提供了具體的描寫敘述,旨在與幫助用戶對實現、配置和調優進行具體的設置。然而,開發時候還是要相應著API進行

設置Joomla!開發環境

簡單 blog part get cto 越南人 setting 公司 月份 轉載自:http://h2appy.blog.51cto.com/609721/373414 雖然是英文,可是寫的非常淺顯易懂,再配合截圖,更是明了。 http://docs.joomla.

款APP的開發設計是如何從0到1設計的

容易 學習 nbsp 過程 很快 idt 工具 strong fail 目前在行業裏,關於APP界面設計規範也是層次不齊,很多都還停留在6的設備和ios 9的系統之上,而現在最新的是iphone 7和iOS 10了(更新換代真的很快),我這裏說的是最新的iOS 界面設計