參考Github項目:https://github.com/timgaripov/TensorNet-TF
參考論文鏈接:http://arxiv.org/abs/1509.06569
在一個復(fù)雜的大型神經(jīng)網(wǎng)絡(luò)中荷愕,權(quán)重(Weights)的保存需要占用相當(dāng)大的空間衡怀,尤其是在全連接層(FC-layers)部分棍矛。張量壓縮是以張量(tensor)的形式保存權(quán)重矩陣的技術(shù),能夠在具有較高壓縮率的情況下保持模型的準確率抛杨,從而得到一個輕量的模型够委。
張量
張量(計算機領(lǐng)域的張量)即使不同維度的數(shù)組(array),一維的張量就是向量(vector)怖现,二維的張量即是矩陣(matrix)茁帽。
TT-format
TT-format是文中提出的一種表示張量的方法。如上圖所示有巧,一個四維的張量(344*3)溃肪,被分解成了四個三維的張量(稱為Core)堪旧,這個張量在(2,4,2,3)處的值就可以通過四個core中對應(yīng)的矩陣相乘來得到曹货。
在這個例子中,張量本身的參數(shù)量是3*4*4*3=144然眼,而用TT-format進行表示只需要3*3+3*3*4+3*3*4+3*3=90個參數(shù)艾船,這個例子的秩為3,如果能得到更低的秩高每,就可以得到更高的壓縮率屿岂。
除此之外,TT-format還可以用來表示矩陣和向量觉义,并支持進行按位乘法雁社、加法。
TT-layer
在神經(jīng)網(wǎng)絡(luò)的全連接層中晒骇,前向傳播需要計算y=Wx+b,反向傳播則需要計算dW和db磺浙。
通過將y,x,W,b分別以張量的形式表示洪囤,再轉(zhuǎn)化成TT-format進行運算,既能節(jié)省內(nèi)存撕氧,也能節(jié)省時間瘤缩。同樣,反向傳播過程也能通過這種方法節(jié)約計算資源伦泥。
計算量對比: