1. 程式人生 > >CNN網路二值化--XNOR-Net: ImageNet Classification Using Binary Convolutional Neural Networks

CNN網路二值化--XNOR-Net: ImageNet Classification Using Binary Convolutional Neural Networks

XNOR-Net: ImageNet Classification Using Binary Convolutional Neural Networks

本文主要是簡化CNN網路,使得CNN網路能夠在CPU實時跑起來,但是會犧牲一些精度。本文提出了兩個不同的簡化網路 :Binary-Weight-Networks 和 XNOR-Networks。Binary-Weight-Networks 只是對CNN網路的濾波器進行二值化近似,使其佔記憶體降低32倍多,而 XNOR-Networks 則對CNN網路的濾波器及其輸入都進行二值化近似,This results in 58× faster convolutional operations and 32× memory savings。貌似會有一天能夠在手機APP上跑起高大上的CNN網路,而且精度不會犧牲太多。

這裡寫圖片描述

3 Binary Convolutional Neural Network
對於每一次CNN網路,我們使用一個三元素 《I,W,#》來表示,I 表示卷積輸入,W表示濾波器,#表示卷積運算元

3.1 Binary-Weight-Networks
該網路主要是對W 進行二值化,主要是一些數學公式的推導,公式推導如下

這裡寫圖片描述
這裡寫圖片描述
這裡寫圖片描述
這裡寫圖片描述
這裡寫圖片描述

Training Binary-Weights-Networks:

這裡寫圖片描述

3.2 XNOR-Networks
這裡要對 I及W都二值化

這裡寫圖片描述
這裡寫圖片描述
這裡寫圖片描述

記憶體降低效果及速度對比

這裡寫圖片描述

前後效能對比,精度有所降低

這裡寫圖片描述

前途是美好的,希望大牛早日攻克該問題,早日實用化!