chinese直男口爆体育生外卖, 99久久er热在这里只有精品99, 又色又爽又黄18禁美女裸身无遮挡, gogogo高清免费观看日本电视,私密按摩师高清版在线,人妻视频毛茸茸,91论坛 兴趣闲谈,欧美 亚洲 精品 8区,国产精品久久久久精品免费

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

CPU上最流行的加速神經(jīng)網(wǎng)絡(luò)推理方法之一

Tensorflowers ? 來源:TensorFlow ? 作者:TensorFlow ? 2021-09-12 15:57 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

量化是在 CPU 上最流行的加速神經(jīng)網(wǎng)絡(luò)推理方法之一。去年,TensorFlow Lite 通過 XNNPACK 后端提高了浮點模型的性能。如今,我們將 XNNPACK 后端擴展至量化模型。各個計算機視覺模型就表現(xiàn)而言,與默認(rèn)的 TensorFlow Lite 量化內(nèi)核相比,改擴展在 ARM64 手機上的速度平均提升 30%,在 x86-64 筆記本電腦及桌面設(shè)備系統(tǒng)上提升 5 倍,在 WebAssembly SIMD 的瀏覽器內(nèi)推理上提升 20 倍。

TensorFlow Lite

https://tensorflow.google.cn/lite

XNNPACK 后端

https://github.com/tensorflow/tensorflow/blob/master/tensorflow/lite/delegates/xnnpack/README.md

XNNPACK 中的量化推理針對 TensorFlow 模型優(yōu)化工具包所用的對稱量化架構(gòu)進(jìn)行了優(yōu)化。XNNPACK 既支持傳統(tǒng)的按張量量化架構(gòu),也支持較新且準(zhǔn)確率更高的帶有權(quán)重渠道量化和激活按張量量化的架構(gòu)。此外,XNNPACK 還支持非對稱量化架構(gòu),但效率有所降低。

對稱量化架構(gòu)

https://tensorflow.google.cn/lite/performance/quantization_spec#symmetric_vs_asymmetric

傳統(tǒng)的按張量量化架構(gòu)

https://arxiv.org/abs/1712.05877

帶有權(quán)重渠道量化和激活按張量量化的架構(gòu)

https://arxiv.org/abs/1806.08342

性能提升

我們在一些邊緣設(shè)備和神經(jīng)網(wǎng)絡(luò)架構(gòu)針對 XNNPACK 加速的量化推理進(jìn)行了評估。我們以下文介紹的四個公開模型和兩個內(nèi)部量化模型為基準(zhǔn),它涵蓋了常見的計算機視覺任務(wù):

1.EfficientNet-Lite0 圖像分類 [下載]

下載

https://tfhub.dev/tensorflow/lite-model/efficientnet/lite0/int8/2

2.EfficientDet-Lite0 對象檢測 [下載]

EfficientDet-Lite0

https://arxiv.org/abs/1911.09070

下載

https://tfhub.dev/tensorflow/lite-model/efficientdet/lite0/int8/1

3.DeepLab v3 分割,使用 MobileNet v2 特征提取器 [下載]

DeepLab v3

https://ai.googleblog.com/2018/03/semantic-image-segmentation-with.html

MobileNet v2

https://arxiv.org/abs/1801.04381

下載

https://tfhub.dev/sayakpaul/lite-model/deeplabv3-mobilenetv2/1/default/1

4.CartoonGAN 圖像風(fēng)格轉(zhuǎn)化 [下載]

CartoonGAN

https://ieeexplore.ieee.org/document/8579084

下載

https://tfhub.dev/sayakpaul/lite-model/cartoongan/int8/1

5.Face Mesh 特征點的量化版本

6.視頻分割的量化版本

視頻分割

https://ai.googleblog.com/2018/03/mobile-real-time-video-segmentation.html

使用 XNNPACK 在 Android/ARM64 手機上對量化的計算機視覺模型進(jìn)行單線程推理時的速度提升

在六個 Android ARM64 移動設(shè)備上,XNNPACK 與默認(rèn)的 TensorFlow Lite 量化內(nèi)核相比,平均提升 30%。

使用 XNNPACK 在 x86-64 筆記本電腦和桌面設(shè)備系統(tǒng)上對量化的計算機視覺模型進(jìn)行單線程推理時的速度提升

XNNPACK 在搭載 x86 處理器的筆記本電腦和桌面設(shè)備系統(tǒng)上有了更大幅度的提升。在我們基準(zhǔn)測試中的 5 個 x86 處理器上,XNNPACK 將推理速度平均提升 5 倍。值得注意的是,不支持 AVX 指令集的低端和老式處理器,通過將量化推理轉(zhuǎn)換為 XNNPACK,將速度提升 20 倍以上,而 TensorFlow Lite 以前的推理后端只針對 AVX、AVX2 和 AVX512 指令集優(yōu)化了,而 XNNPACK 則為所有 x86-64 處理器提供了優(yōu)化實現(xiàn)。

通過 V8 運行時,使用 XNNPACK 在手機、筆記本電腦和桌面設(shè)備上對量化的計算機視覺模型進(jìn)行單線程 WebAssembly SIMD 推理的速度提升

除了傳統(tǒng)的移動設(shè)備和筆記本電腦/桌面設(shè)備平臺外,XNNPACK 還通過 TensorFlow Lite Web API 為網(wǎng)絡(luò)平臺進(jìn)行量化推理加速。上圖展示了在 3 個 x86-64 和 2 個 ARM64 系統(tǒng)上通過 V8 JavaScript 引擎運行 WebAssembly SIMD 基準(zhǔn)時,與默認(rèn)的 TensorFlow Lite 實現(xiàn)相比,幾何速度平均提升 20 倍。

TensorFlow Lite Web API

https://github.com/tensorflow/tfjs/tree/master/tfjs-tflite

兩年的優(yōu)化

XNNPACK 起初是 QNNPACK 庫的一個分支,但是由于 XNNPACK 的第一個版本專注于浮點推理,而 QNNPACK 專注于量化推理,因此無法將兩者進(jìn)行比較。如今,隨著 XNNPACK 引入對量化推理的支持及近兩年的性能優(yōu)化,我們可以直接評估。

QNNPACK

https://github.com/pytorch/QNNPACK

為了比較這兩個量化推理后端,我們將隨機的 MobileNet v1 和 MobileNet v2 模型從 XNNPACK API 移植到 QNNPACK API,并在兩個 ARM64 Android 手機和兩個 x86-64 系統(tǒng)上對其單線程性能進(jìn)行了基準(zhǔn)測試。上圖顯示了結(jié)果,XNNPACK 在兩年內(nèi)取得了驚人的進(jìn)步。XNNPACK 在舊的 Pixel 3a 手機上的速度提升 50%,在新的 Pixel 4a 手機上速度提升 4 到 5 倍,在 x86-64 筆記本電腦上提升 2.5X,在 x86-64 工作站上提升 3 倍多。XNNPACK 從 QNNPACK 派生出來后的兩年中進(jìn)行了多種優(yōu)化,這使其性能提升:

MobileNet v1

https://github.com/google/XNNPACK/blob/master/models/qs8-mobilenet-v1.cc

MobileNet v2

https://github.com/google/XNNPACK/blob/master/models/qs8-mobilenet-v2.cc

XNNPACK 保留了 QNNPACK 中的優(yōu)化,如間接卷積算法和針對微架構(gòu)的微內(nèi)核選擇,并通過間接反卷積算法將其進(jìn)一步增強,同時具備更靈活的能力,如量化加法運算符和量化乘法運算符中內(nèi)置的類 numpy 廣播。

間接卷積算法

https://arxiv.org/abs/1907.02129

間接反卷積算法

https://ieeexplore.ieee.org/document/9150450

卷積、反卷積和全連接運算符將 8 位激活和權(quán)重的乘積累積為 32 位數(shù)字,最終需要將該數(shù)字轉(zhuǎn)換回來,或者重新量化為 8 位數(shù)字。有多種方法可以實現(xiàn)重新量化,但 QNNPACK 采用了來自 GEMMLOWP庫的架構(gòu),該庫開創(chuàng)了神經(jīng)網(wǎng)絡(luò)推理的量化計算。然而,人們后來發(fā)現(xiàn) GEMMLOWP 的重新量化架構(gòu)在準(zhǔn)確率和性能方面并不是最優(yōu)的,XNNPACK 憑借更高的性能和準(zhǔn)確率取代了它。

GEMMLOWP 庫

https://github.com/google/gemmlowp

QNNPACK 以非對稱量化架構(gòu)為目標(biāo),其中激活和權(quán)重都表示為無符號整數(shù),并帶有零點和比例量化參數(shù),而 XNNPACK 的優(yōu)化專注于對稱量化,其中激活和權(quán)重都是有符號整數(shù),且權(quán)重有額外的限制:權(quán)重的零點始終為零,量化的權(quán)重被限制在 [-127, 127] 范圍間(雖然 -128 可以表示為有符號 8 位整數(shù),但是仍被排除在外)。在 XNNPACK 中利用對稱量化時具有兩個計算優(yōu)勢。首先,過濾器權(quán)重是靜態(tài)時,輸入零點與過濾器權(quán)重的乘積累積結(jié)果可以完全融合到卷積、反卷積和全連接運算符中的偏移項中。因此,推理計算中完全沒有零點參數(shù)。其次,有符號的 8 位輸入元素與限制在 [-127, 127] 的權(quán)重元素的乘積可以填入 15 位。如此一來,卷積、反卷積和全連接運算符的微內(nèi)核能夠在 16 位變量上進(jìn)行一半的累積,而不是始終將乘積擴展到 32 位。

表示為無符號整數(shù),并帶有零點和比例量化參數(shù)

https://arxiv.org/abs/1712.05877

QNNPACK 微內(nèi)核針對 ARM 上的 NEON SIMD 指令集和 x86 上的 SSE2 SIMD 指令集進(jìn)行了優(yōu)化,但 XNNPACK 支持更多的特定指令集優(yōu)化。XNNPACK 中的大多數(shù)量化微內(nèi)核都針對 x86/x86-64 上的 SSE2、SSE4.1、AVX、XOP、AVX2 和 AVX512 指令集,ARM/ARM64 上的 NEON、NEON V8 和 NEON 點積指令集,以及 WebAssembly SIMD 指令集進(jìn)行了優(yōu)化。此外,XNNPACK 為 WebAssembly 1.0 和 pre-NEON ARM 處理器提供標(biāo)量支持。

QNNPACK 為高端 ARM 和低端 ARM 內(nèi)核引入了提供專門匯編微內(nèi)核的想法,而 XNNPACK 將這一想法進(jìn)一步推進(jìn)。XNNPACK 不僅針對 Cortex-A53、Cortex-A55 以及具有或不具有 NEON 點積指令集的高端內(nèi)核的專門專家調(diào)整軟件流水線匯編微內(nèi)核,甚至在它們之間還支持實時切換。進(jìn)行推理的線程從大核遷移到小核時,XNNPACK 會自動適應(yīng),從使用針對大核優(yōu)化的微內(nèi)核轉(zhuǎn)換到針對小核優(yōu)化的微內(nèi)核。

QNNPACK 主要專注于多線程推理,并將計算分割成大量的小任務(wù),每個任務(wù)計算輸出張量的一個小切片。XNNPACK 重新設(shè)計了并行化,讓任務(wù)變得靈活:可以分割為細(xì)粒度或粗粒度,具體取決于參與并行化的線程數(shù)量。通過動態(tài)調(diào)整任務(wù)粒度,XNNPACK 在單線程執(zhí)行中實現(xiàn)了低開銷,在多線程推理中實現(xiàn)了高并行化效率。

總之,這些優(yōu)化讓 XNNPACK 擁有最先進(jìn)的量化推理能力,且讓 TensorFlow Lite 成為最通用的量化推理解決方案,涵蓋包括 Raspberry Pi Zero、Chromebook,以及具有服務(wù)器類處理器的工作站在內(nèi)的眾多系統(tǒng)。

如何使用?

量化的 XNNPACK 推理在所有平臺 TensorFlow Lite 的 CMake 構(gòu)建,以及網(wǎng)絡(luò)平臺 TensorFlow Lite 的 Bazel 構(gòu)建中默認(rèn)啟用,并將在 2.7 版本的 TensorFlow Lite Web API 中可用。在其他平臺的 Bazel 構(gòu)建中,量化的 XNNPACK 推理通過構(gòu)建時的選擇機制啟用。使用 Bazel 構(gòu)建 TensorFlow Lite 時,如果添加 --define tflite_with_xnnpack=true --define xnn_enable_qs8=true,TensorFlow Lite 解釋器將默認(rèn)使用 XNNPACK 后端,使用具有對稱量化的受支持運算符??梢酝ㄟ^添加 --define xnn_enable_qu8=true Bazel 選項,對非對稱量化的運算符進(jìn)行有限支持。

TensorFlow Lite Web API

https://github.com/tensorflow/tfjs/tree/master/tfjs-tflite

可加速哪些運算?

XNNPACK 后端目前支持量化的 TensorFlow Lite 運算符的子集(請參閱文檔,了解詳細(xì)信息和限制)。XNNPACK 支持由模型優(yōu)化工具包通過訓(xùn)練后的整數(shù)量化和量化感知訓(xùn)練產(chǎn)生的模型,但不支持訓(xùn)練后的動態(tài)范圍量化。

文檔

https://github.com/tensorflow/tensorflow/blob/master/tensorflow/lite/delegates/xnnpack/README.md#quantized-operators

未來展望

這是 XNNPACK 集成到 TensorFlow Lite 后的第三個版本,之前是浮點實現(xiàn)的初始版本以及引入稀疏推理支持的后續(xù)版本。在未來版本中,我們將添加以下改進(jìn):

最新 ARM 處理器上的半精度推理

稀疏量化推理。

更加快速的密集推理。

希望您能在 GitHub 和 StackOverflow 頁面上積極發(fā)表您的想法和評論,您也可以在 discuss.tensorflow.org 上提問。

GitHub

https://github.com/tensorflow/tensorflow/issues

StackOverflow

https://stackoverflow.com/questions/tagged/tensorflow-lite

discuss.tensorflow.org

http://discuss.tensorflow.org

責(zé)任編輯:haq

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • cpu
    cpu
    +關(guān)注

    關(guān)注

    68

    文章

    11213

    瀏覽量

    222787
  • 模型
    +關(guān)注

    關(guān)注

    1

    文章

    3645

    瀏覽量

    51686

原文標(biāo)題:用 XNNPACK 加速量化推理

文章出處:【微信號:tensorflowers,微信公眾號:Tensorflowers】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關(guān)推薦
    熱點推薦

    NMSIS神經(jīng)網(wǎng)絡(luò)庫使用介紹

    NMSIS NN 軟件庫是組高效的神經(jīng)網(wǎng)絡(luò)內(nèi)核,旨在最大限度地提高 Nuclei N 處理器內(nèi)核神經(jīng)網(wǎng)絡(luò)的性能并最??大限度地減少其內(nèi)存占用。 該庫分為多個功能,每個功能涵蓋特定
    發(fā)表于 10-29 06:08

    在Ubuntu20.04系統(tǒng)中訓(xùn)練神經(jīng)網(wǎng)絡(luò)模型的些經(jīng)驗

    模型。 我們使用MNIST數(shù)據(jù)集,訓(xùn)練個卷積神經(jīng)網(wǎng)絡(luò)(CNN)模型,用于手寫數(shù)字識別。旦模型被訓(xùn)練并保存,就可以用于對新圖像進(jìn)行推理和預(yù)測。要使用生成的模型進(jìn)行
    發(fā)表于 10-22 07:03

    CICC2033神經(jīng)網(wǎng)絡(luò)部署相關(guān)操作

    在完成神經(jīng)網(wǎng)絡(luò)量化后,需要將神經(jīng)網(wǎng)絡(luò)部署到硬件加速。首先需要將所有權(quán)重數(shù)據(jù)以及輸入數(shù)據(jù)導(dǎo)入到存儲器內(nèi)。 在仿真環(huán)境下,可將其存于個文件
    發(fā)表于 10-20 08:00

    液態(tài)神經(jīng)網(wǎng)絡(luò)(LNN):時間連續(xù)性與動態(tài)適應(yīng)性的神經(jīng)網(wǎng)絡(luò)

    1.算法簡介液態(tài)神經(jīng)網(wǎng)絡(luò)(LiquidNeuralNetworks,LNN)是種新型的神經(jīng)網(wǎng)絡(luò)架構(gòu),其設(shè)計理念借鑒自生物神經(jīng)系統(tǒng),特別是秀麗隱桿線蟲的
    的頭像 發(fā)表于 09-28 10:03 ?649次閱讀
    液態(tài)<b class='flag-5'>神經(jīng)網(wǎng)絡(luò)</b>(LNN):時間連續(xù)性與動態(tài)適應(yīng)性的<b class='flag-5'>神經(jīng)網(wǎng)絡(luò)</b>

    神經(jīng)網(wǎng)絡(luò)的并行計算與加速技術(shù)

    問題。因此,并行計算與加速技術(shù)在神經(jīng)網(wǎng)絡(luò)研究和應(yīng)用中變得至關(guān)重要,它們能夠顯著提升神經(jīng)網(wǎng)絡(luò)的性能和效率,滿足實際應(yīng)用中對快速響應(yīng)和大規(guī)模數(shù)據(jù)處理的需求。神經(jīng)網(wǎng)絡(luò)并行
    的頭像 發(fā)表于 09-17 13:31 ?873次閱讀
    <b class='flag-5'>神經(jīng)網(wǎng)絡(luò)</b>的并行計算與<b class='flag-5'>加速</b>技術(shù)

    大模型推理顯存和計算量估計方法研究

    (如全連接層、卷積層等)確定所需的顯存大小; (3)將各層顯存大小相加,得到模型總的顯存需求。 基于神經(jīng)網(wǎng)絡(luò)剪枝的顯存估計 神經(jīng)網(wǎng)絡(luò)剪枝是種減少模型參數(shù)數(shù)量的技術(shù),可以降低顯存需求。通過剪枝,可以
    發(fā)表于 07-03 19:43

    無刷電機小波神經(jīng)網(wǎng)絡(luò)轉(zhuǎn)子位置檢測方法的研究

    摘要:論文通過對無刷電機數(shù)學(xué)模型的推導(dǎo),得出轉(zhuǎn)角:與三相相電壓之間存在映射關(guān)系,因此構(gòu)建了個以三相相電壓為輸人,轉(zhuǎn)角為輸出的小波神經(jīng)網(wǎng)絡(luò)來實現(xiàn)轉(zhuǎn)角預(yù)測,并采用改進(jìn)遺傳算法來訓(xùn)練網(wǎng)絡(luò)結(jié)構(gòu)與參數(shù),借助
    發(fā)表于 06-25 13:06

    神經(jīng)網(wǎng)絡(luò)專家系統(tǒng)在電機故障診斷中的應(yīng)用

    摘要:針對傳統(tǒng)專家系統(tǒng)不能進(jìn)行自學(xué)習(xí)、自適應(yīng)的問題,本文提出了基于種經(jīng)網(wǎng)絡(luò)專家系統(tǒng)的并步電機故障診斷方法。本文將小波神經(jīng)網(wǎng)絡(luò)和專家系統(tǒng)相結(jié)合,充分發(fā)揮了二者故障診斷的優(yōu)點,很大程度上降低了對電機
    發(fā)表于 06-16 22:09

    BP神經(jīng)網(wǎng)絡(luò)與卷積神經(jīng)網(wǎng)絡(luò)的比較

    BP神經(jīng)網(wǎng)絡(luò)與卷積神經(jīng)網(wǎng)絡(luò)在多個方面存在顯著差異,以下是對兩者的比較: 、結(jié)構(gòu)特點 BP神經(jīng)網(wǎng)絡(luò) : BP神經(jīng)網(wǎng)絡(luò)
    的頭像 發(fā)表于 02-12 15:53 ?1284次閱讀

    BP神經(jīng)網(wǎng)絡(luò)的優(yōu)缺點分析

    BP神經(jīng)網(wǎng)絡(luò)(Back Propagation Neural Network)作為種常用的機器學(xué)習(xí)模型,具有顯著的優(yōu)點,同時也存在些不容忽視的缺點。以下是對BP神經(jīng)網(wǎng)絡(luò)優(yōu)缺點的分析
    的頭像 發(fā)表于 02-12 15:36 ?1531次閱讀

    什么是BP神經(jīng)網(wǎng)絡(luò)的反向傳播算法

    BP神經(jīng)網(wǎng)絡(luò)的反向傳播算法(Backpropagation Algorithm)是種用于訓(xùn)練神經(jīng)網(wǎng)絡(luò)的有效方法。以下是關(guān)于BP神經(jīng)網(wǎng)絡(luò)的反
    的頭像 發(fā)表于 02-12 15:18 ?1259次閱讀

    BP神經(jīng)網(wǎng)絡(luò)與深度學(xué)習(xí)的關(guān)系

    BP神經(jīng)網(wǎng)絡(luò)與深度學(xué)習(xí)之間存在著密切的關(guān)系,以下是對它們之間關(guān)系的介紹: 、BP神經(jīng)網(wǎng)絡(luò)的基本概念 BP神經(jīng)網(wǎng)絡(luò),即反向傳播神經(jīng)網(wǎng)絡(luò)(Ba
    的頭像 發(fā)表于 02-12 15:15 ?1328次閱讀

    BP神經(jīng)網(wǎng)絡(luò)的基本原理

    BP神經(jīng)網(wǎng)絡(luò)(Back Propagation Neural Network)的基本原理涉及前向傳播和反向傳播兩個核心過程。以下是關(guān)于BP神經(jīng)網(wǎng)絡(luò)基本原理的介紹: 、網(wǎng)絡(luò)結(jié)構(gòu) BP
    的頭像 發(fā)表于 02-12 15:13 ?1490次閱讀

    人工神經(jīng)網(wǎng)絡(luò)的原理和多種神經(jīng)網(wǎng)絡(luò)架構(gòu)方法

    在上篇文章中,我們介紹了傳統(tǒng)機器學(xué)習(xí)的基礎(chǔ)知識和多種算法。在本文中,我們會介紹人工神經(jīng)網(wǎng)絡(luò)的原理和多種神經(jīng)網(wǎng)絡(luò)架構(gòu)方法,供各位老師選擇。 01 人工
    的頭像 發(fā)表于 01-09 10:24 ?2224次閱讀
    人工<b class='flag-5'>神經(jīng)網(wǎng)絡(luò)</b>的原理和多種<b class='flag-5'>神經(jīng)網(wǎng)絡(luò)</b>架構(gòu)<b class='flag-5'>方法</b>

    文詳解物理信息神經(jīng)網(wǎng)絡(luò)

    物理信息神經(jīng)網(wǎng)絡(luò) (PINN) 是神經(jīng)網(wǎng)絡(luò),它將微分方程描述的物理定律納入其損失函數(shù)中,以引導(dǎo)學(xué)習(xí)過程得出更符合基本物理定律的解。
    的頭像 發(fā)表于 12-05 16:50 ?1.4w次閱讀
    <b class='flag-5'>一</b>文詳解物理信息<b class='flag-5'>神經(jīng)網(wǎng)絡(luò)</b>