1. 程式人生 > >卷積層上的滑動視窗(將全連線層轉化為卷積層)

卷積層上的滑動視窗(將全連線層轉化為卷積層)

全連線層轉化為卷積層

一、FC網路

在有全連線層的網路中,第一個FC是將上一層5*5*16的多維資料拉成一行,轉化為1*1*400,在通過一個變換矩陣,變成第二個FC,然後經過softmax輸出預測結果。

二、全卷積網路

在全卷積網路中,我們通過卷積替換掉全連線,具體做法是:

1.在第一個FC處,使用400個5*5*16的卷積核對上一層layer進行處理,得到的輸出是1*1*400。這樣,輸出中每一個值都包含了一個5*5*16的卷積核。

2.在第二個FC處,使用400個1*1*400的卷積核對上一層的輸出1*1*400進行處理,得到的還是1*1*400。

3.對應於softmax輸出,這裡依然用1*1卷積進行輸出,n個1*1*400的卷積核


圖一  上面的網路有全連線層,下面的網路只有卷積層

三、目的

全卷積網路和FC網路的引數量沒有改變,和FC網路一樣多,,,主要是為了在卷積層上實現滑動視窗,減少重複卷積的計算,,在目標檢測中很有用。 因為FC網路在全連線層上改變了原先矩陣的結構,無法對應於一個個滑動視窗。

圖二  卷積網路中的滑動視窗以及其對應的卷積結果

相關推薦

滑動視窗連線轉化

全連線層轉化為卷積層 一、FC網路 在有全連線層的網路中,第一個FC是將上一層5*5*16的多維資料拉成一行,轉化為1*1*400,在通過一個變換矩陣,變成第二個FC,然後經過softmax輸出預測

為什麼目標檢測中要連線轉化

參考文章: VGG網路中測試時為什麼全連結層改成卷積層 為什麼使用卷積層替代CNN末尾的全連線層 首先看一下卷積層的特點: 區域性連線:提取資料區域性特徵,比如卷積核的感受野 權值共享:一個卷積核只需提取一個特徵,降低了網路訓練的難度 究竟使用卷積層代替全連線層會帶來什麼好處呢?

為什麼要連線轉化

轉自:https://www.cnblogs.com/liuzhan709/p/9356960.html 理解為什麼要將全連線層轉化為卷積層 1.全連線層可以視作一種特殊的卷積 考慮下面兩種情況: 特徵圖和全連線層相連,AlexNet經過五次池化後得到7*7*512的特徵圖,下

leetcode 76. Minimum Window Substring 滑動視窗

I will first give the solution then show you the magic template.   The code of solving this problem is below. It might be the shortest among all sol

TCP-IP詳解:滑動視窗Sliding Window

 TCP的優勢 從傳輸資料來講,TCP/UDP以及其他協議都可以完成資料的傳輸,從一端傳輸到另外一端,TCP比較出眾的一點就是提供一個可靠的,流控的資料傳輸,所以實現起來要比其他協議複雜的多,先來看下這兩個修飾詞的意義:  1. Reliability ,提供TCP的可

18.12.16 滑動視窗單調佇列

描述 給定一個長度為n(n<=10^6)的陣列。有一個大小為k的滑動視窗從陣列的最左端移動到最右端。你可以看到視窗中的k個數字。視窗每次向右滑動一個數字的距離。 下面是一個例子: 陣列是 [1 3 -1 -3 5 3 6 7], k = 3。

TCP 滑動視窗 流量控制

首先明確: 1)TCP滑動視窗分為接受視窗,傳送視窗 滑動視窗協議是傳輸層進行流控的一種措施,接收方通過通告發送方自己的視窗大小,從而控制傳送方的傳送速度,從而達到防止傳送方傳送速度過快而導致自己被淹沒的目的。 對ACK的再認識,ack通常被理解為收到資料後給出的一個確認ACK,ACK包含兩個非常重要的資訊:

TCP 滑動視窗傳送視窗和接收視窗

   TCP協議作為一個可靠的面向流的傳輸協議,其可靠性和流量控制由滑動視窗協議保證,而擁塞控制則由控制視窗結合一系列的控制演算法實現。一、滑動視窗協議     關於這部分自己不曉得怎麼敘述才好,因為理解的部分更多,下面就用自己的理解來介紹下TCP的精髓:滑動視窗協議。 

LeetCode Sliding Window Maximum 滑動視窗雙向連結串列實現佇列效果

思路: 使用雙向連結串列(LinkedList,LinkedList類是雙向列表,列表中的每個節點都包含了對前一個和後一個元素的引用)。 雙向連結串列的大小就是視窗的個數,每次向視窗中增加一個元素時,如果比視窗中最後一個大,就刪除視窗中最後一個,以此類推,來

Matlab 幾種的實現與比較conv與filter,conv2與filter2,imfilter

</pre><pre name="code" class="cpp"></pre></h1><h1><span style="font-size:18px;">1 filter</span></h1><sp

openjudge滑動視窗單調遞增遞減佇列

滑動視窗(from openjudge)   在解決這個問題的時候,會碰到超時的問題。在資料量很大的情況下,不難想到需要用scanf和printf進行輸入輸出,但是即便是這樣也會導致超時,所以就需要在演算法上做出改變。這也就是這道題的重點:遞增/遞減佇

滑動視窗Sliding Window技巧總結

## 什麼是滑動視窗(Sliding Window) > The Sliding Problem contains a sliding window which is a sub – list that runs over a Large Array which is an underlying co

Python切分文字文字文件切分詞列表

對於一個句子,一種簡單的方法是使用split() a = 'This is an apple. Do you like apple?' b = a.split() print(b) # ['This', 'is', 'an', 'apple.', 'Do', 'you', 'like', '

8、CentOS7 安裝Docker之擴充套件docker程序移動到一個不同的分割槽注:操作雖然很簡單,但很實用。

將docker程序移動到一個不同的分割槽 Docker把與你的容器和映象相關的資料儲存到一個目錄下。由於可能會儲存潛在的大量不同的映象,這個目錄會很快變得很大! 如果你的主機有不同的分割槽,你可能會更快遇到空間受限的問題。在這種情況下,你可能需要把Docker的資料目錄移動到其它分割槽。 問

二叉樹序遍歷關鍵詞:樹/二叉樹/遍歷/序遍歷/層次遍歷

二叉樹層序遍歷 實現 def levelOrder(self, root): if root is None: return [] res = [] queue = [root]

javascript 如何列印、輸出陣列內容陣列內容以字串的形式展示出來

    1.情景展示   在實際開發過程中,為了除錯,有時我們需要看陣列中具體包含了哪些資料,但是,   如果我們直接列印該陣列物件,顯示的結果卻不是我們想要的。   如何才能將陣列內容打印出來呢?(將陣列內容以字串的形式展示出來) 2.解

JAVA學習筆記 物件的轉型物件子類物件當作父類物件來使用

  世界萬物無非就是吃喝玩樂繁衍生息,傳宗接代是重中之重,這樣長久以來就構成了我們地球上的生態系統,java也是這樣,只不過這裡面更加直接和純粹,就用學生和人類做一下例子,學生一定是人類對吧?(苗紅根正的當代優秀青年不相信怪力亂神)所以說人類一定就是學生的父類,學生就是人類的子類。大圓之中

LeetCode7——Reverse Integer一個整數反轉,注意溢位的處理

題目: 解法一: 注意long long型別,表示64bit數字。 解法二: class Solution { public: int reverse(int x) { int ans = 0; while (x) {

Keras —— 基於Vgg16模型連線的圖片識別

一、載入並顯示圖片 img_path = 'elephant.jpg' img = image.load_img(img_path, target_size=(224, 224)) plt.ims

用vue寫一個商城的貨元件簡單易懂版,50行js實現效果

0、結果放前面 加個Star後,fork下來。 然後在控制檯,先輸入npm install安裝依賴,再輸入npm run dev執行檢視效果 1、先列需求 一切開發都是基於需求做的,所以需求先行,根據需求設計功能。 需求如下: 上貨商品有多