1. 程式人生 > >用SVD壓縮深度模型(DNN,CNN)的全連線層(fully-connected layer)

用SVD壓縮深度模型(DNN,CNN)的全連線層(fully-connected layer)

轉自:https://my.oschina.net/liusicong/blog/866364

轉載請註明出處,否則將依法追究版權

全連線層出現在DNN和 CNN中.很多論文[介紹瞭如何用SVD,VQ,Sparse code壓縮全連線層,這些方法不是端到端地訓練一個新模型,而是對訓練好的模型壓縮其全連線層的權重矩陣,在應用實現中則需要同時考慮對權重和偏移的處理. 實際上權重和偏移的維度不相同,處理方法是不同的.本文將系統性地介紹在應用實現中,如何利用下述方法壓縮權重矩陣,同時處理與之對應的偏移量,從而實現全連線層壓縮的整個過程.

首先深入研究兩個相鄰全連線層的運算原理,理解權重矩陣 和偏移 的關係.如下圖所示,第L層有m個神經元,第(L+1)層有n個神經元,因此相鄰兩個全連線層的權重矩陣 是一個 的2維矩陣.全連線層輸入 與輸出 的對映關係是 .即L層所有神經元與第(L+1)層的某個神經元的連線共享同一個偏移量,因此相鄰兩個全連線層的偏移量是一個1維向量,包含n個元素.

奇異值分解(SVD)壓縮演算法. 如下圖所示,基於SVD的全連線層壓縮方法就是引入一箇中間層L’,該中間層包含 c個神經元, .因此可以減少連線數和權重規模,權重矩陣規模從 mn減少到(m+n)c ,從而降低執行深度模型的計算和儲存需求.

DeepX運用了基於SVD的面向層的壓縮技術,處理訓練好的模型引數,以減少引數規模,減少模型執行推斷時的資源消耗,提高推斷速度.具體地,相鄰的兩個全連線層L和(L+1)分別有m和n個神經元,對相鄰兩層的權重矩陣 執行SVD運算,即就是 .可以選擇最大的c個值來近似權重矩陣,如式(1)所示.
 (1)

基於以上分析,就可以直接程式碼實現了


相關推薦

SVD壓縮深度模型DNN,CNN連線(fully-connected layer)

轉自:https://my.oschina.net/liusicong/blog/866364 轉載請註明出處,否則將依法追究版權 全連線層出現在DNN和 CNN中.很多論文[介紹瞭如何用SVD,VQ,Sparse code壓縮全連線層,這些方法不是端到端地訓練一個新模型

CNN卷積convolutional layer,激勵activating layer,池化pooling,連線fully connected

CNN產生的原因:當使用全連線的神經網路時,因為相鄰兩層之間的神經元都是有邊相連的,當輸入層的特徵緯度非常高時(譬如圖片),全連線網路需要被訓練的引數就會非常多(引數太多,訓練緩慢),CNN可以通過訓練少量的引數從而進行特徵提取。上圖每一個邊就代表一個需要訓練的引數,可以直觀

CNN連線已過時?全域性平均池化GAP瞭解一下

Traditional Pooling Methods 要想真正的理解Global Average Pooling,首先要了解深度網路中常見的pooling方式,以及全連線層。 眾所周知CNN網路中常見結構是:卷積、池化和啟用。卷積層是CNN網路的核心,啟用函式幫助網路

深度學習基礎--卷積--區域性連線(Locally-Connected Layer)

區域性連線層(Locally-Connected Layer)   locally-conv的概念來自傳統ML中的模型初始化(隨機樹方法中每個影象的crop都對應特定的一棵樹)。   引數共享這個策略並不是每個場景下都合適的。有一些特定的場合,我們不能把圖片上的這些視窗資料都視作作用等同

CNN網路連線的一些理解

CNN網路的全連線層一般包含兩個部分: 線性運算部分:完成線性變換的工作,將輸入經過線性變換轉換成輸出。 非線性運算部分(以下簡稱非線性部分): 緊接著線性部分,完成非線性變換。 線性運算部分的作用: 線性部分從運算過程上看就是線性變換,對於一個輸入向量,線性部分的輸出向量是,線

CNN連線是什麼樣的?

名稱:全連線。意思就是輸出層的神經元和輸入層的每個神經元都連線。 例子: AlexNet  網路中第一個全連線層是這樣的: layer {   name: "fc6"   type: "InnerProduct"   bottom: "pool5"   top:"fc6"

解釋一下連線&CNN連線是什麼樣的

(名稱:全連線。意思就是輸出層的神經元和輸入層的每個神經元都連線)在卷積神經網路的最後,往往會出現一兩層全連線層,全連線一般會把卷積輸出的二維特徵圖轉化成一維的一個向量,這是怎麼來的呢?目的何在呢?舉個例子:最後的兩列小圓球就是兩個全連線層,在最後一層卷積結束後,進行了最後一

卷積神經網路(CNN)中連線(FC layer)的作用

前言 一般來說,卷積神經網路會有三種類型的隱藏層——卷積層、池化層、全連線層。卷積層和池化層比較好理解,主要很多教程也會解釋。 卷積層(Convolutional layer)主要是用一個取樣器從輸入資料中採集關鍵資料內容; 池化層(Pooling lay

模型驅動的深度學習ADMM-net

for 高精 高精度 不同 height 梯度 深度學習 減少 需求 流程:模型族->算法族->深度網絡->深度學習 模型族:模型中含有超參數,給予不同的參數對應不同的模型,就形成了模型族 算法族:每一個模型對應一個完整算法,整個模型族對應了一個算法族 將

機器學習與深度學習系列連載: 第二部分 深度學習十二卷積神經網路 3 經典的模型LeNet-5,AlexNet ,VGGNet,GoogLeNet,ResNet

卷積神經網路 3 經典的模型 經典的卷積神經網路模型是我們學習CNN的利器,不光是學習原理、架構、而且經典模型的超引數、引數,都是我們做遷移學習最好的源材料之一。 1. LeNet-5 [LeCun et al., 1998] 我們還是從CNN之父,LeCun大神在98年提出的模

機器學習與深度學習系列連載: 第二部分 深度學習十一卷積神經網路 2 Why CNN for Image?

卷積神經網路 2 Why CNN 為什麼處理圖片要用CNN? 原因是: 一個神經元無法看到整張圖片 能夠聯絡到小的區域,並且引數更少 圖片壓縮畫素不改變圖片內容 1. CNN 的特點 卷積: 一些卷積核遠遠小於圖片大小; 同樣的pat

機器學習與深度學習系列連載: 第一部分 機器學習 生成概率模型Generative Model

生成概率模型(Generative Model) 1.概率分佈 我們還是從分類問題說起: 當我們把問題問題看做是一個迴歸問題, 分類是class 1 的時候結果是1 分類為class 2的時候結果是-1; 測試的時候,結果接近1的是class1

caffe的python介面學習6訓練好的模型caffemodel來分類新的圖片

#coding=utf-8import caffeimport numpy as nproot='/home/xxx/' #根目錄deploy=root + 'mnist/deploy.prototxt' #deploy檔案caffe_model=root + 'mnist/lenet_iter

目標檢測經典模型R-CNN、Fast R-CNN、Faster R-CNN

目標檢測是深度學習的一個重要應用,就是在圖片中要將裡面的物體識別出來,並標出物體的位置,一般需要經過兩個步驟: 1、分類,識別物體是什麼 2、定位,找出物體在哪裡 除了對單個物體進行檢測,還要能支援對多個物體進行檢測,如下圖所示: 這個問題並不是那

深度學習中的注意力模型2017版

摘自 張俊林 https://zhuanlan.zhihu.com/p/37601161 注意力模型最近幾年在深度學習各個領域被廣泛使用,無論是影象處理、語音識別還是自然語言處理的各種不同型別的任務中,都很容易遇到注意力模型的身影。所以,瞭解注意力機制的工作原理對於關注深度

基於深度卷積神經網路D-CNN的影象去噪方法

基於深度卷積神經網路的影象去噪方法   摘要:影象去噪在影象處理中仍然是一個具有挑戰性的問題。作者提出了一種基於深度卷積神經網路(DCNN)的影象去噪方法。作者設計的不同於其他基於學習的方法:一個DCNN來實現噪聲影象。因此,通過從汙染影象中分離噪聲影

深度學習十八基於R-CNN的物體檢測

基於R-CNN的物體檢測作者:hjimce一、相關理論本篇博文主要講解2014年CVPR上的經典paper:《Rich feature hierarchies for Accurate Object D

深度學習課程之文字預處理、詞袋模型、word2vec、語言模型1.9

詞向量和語言模型 深度學習其實最成功的應用是在影象上,有了 CNN 可以很好地提取影象上的特徵,這些特徵經過幾層的神經網路結構可以很好地組合成比較抽象的特徵。 NLP 常見任務 自動摘要:媒體需要的頭條通過 NLP 自動提取 機器翻譯 主題識別 文字分類

windows下caffe載入二進位制模型linux下訓練的問題

最近,需要移植faster-rcnn的detect部分到android平臺上,為方便刪減程式碼與除錯,需要跨平臺相容到windows下執行,windows下除錯的時候,用的是linux下的模型定義proto與訓練好的二進位制模型,但是,一直載入模型不成功,逐步解決方法如下:

手把手教你R語言建立信用評分模型完結篇— —打分卡轉換

打分卡轉換 我們在上一部分,我們已經基本完成了建模相關的工作,並用混淆矩陣驗證了模型的預測能力。接下來的步驟,就是將Logistic模型轉換為標準打分卡的形式。 在建立標準評分卡之前,我們需要選取幾個評分卡引數:基礎分值、 PDO(比率翻倍的分值)和好