神經網路的訓練與部署

2021-08-15 02:40:56 字數 1579 閱讀 9353

乙個網路的三要素:結構、演算法、權值

網路模型一旦選定,三要素中結構演算法就確定了,接下來要對權值進行調整。

神經網路是將一組訓練集(training set)送入網路,根據網路的實際輸出與期望輸出間的差別來調整權值。

訓練模型的步驟:

選擇樣本集合的乙個樣本(ai bi) (資料 標籤)

送入網路,計算網路的實際輸出y(此時網路中的權重都是隨機的)

計算d=bi -y(**值與實際值的差)

根據誤差d調整權值矩陣w

對每個樣本重複上述過程,直到對整個樣本集來說,誤差不超過規定範圍。

caffe是一種開源的軟體框架,利用這套框架,我們可以實現新的網路、修改已有的神經網路、訓練網路、編寫網路使用。

實現新的網路

1 資料打包

2 編寫網路結構檔案

3 編寫網路求解檔案

4 開始訓練

caffe的檔案結構

例如安裝後會有 mnist ilsvrc12 cifar10

docs example 使用的幫助文件和**樣例

直接使用caffe神經網路框架比較複雜,可以使用nvidia推出的digist視覺化工具進行網路的訓練。

tensorrt 網路框架 採取「」精度換速度「」的策略,在精度無明顯下降的前提下,其對inference的加速明顯,往往有1倍以上的效能提公升,它能根據prototxt檔案和caffemodel權值,轉化為支援半精度的新的模型。其工作流程:

訓練對於深度學習來說是為了獲得乙個效能優異的模型,其主要的關注點在於模型的準確度等指標。推理則不一樣,其沒有了訓練中的反向迭代過程,是針對新的資料進行**,而我們日常生活中使用的ai服務都是推理服務。相較於訓練,推理的關注點不一樣,從而也給現在有技術帶來了新的挑戰:

推理 需求

現有框架的侷限性

影響高吞吐率

無法處理大量和高速的資料

增加了單次推理的開銷

低響應時間

應用無法提供實時的結果

損害了使用者體驗(語音識別、個性化推薦和實時目標檢測)

高效的功耗以及視訊記憶體消耗控制

非最優性能

增加了推理的開銷甚至無法進行推理部署

專業部署級別的解決方案

非專用於部署使用

框架複雜度和配置增加了部署難度以及生產率

推理更關注的是高吞吐率、低響應時間、低資源消耗以及簡便的部署流程,而tensorrt就是用來解決推理所帶來的挑戰以及影響的部署級的解決方案。

神經網路訓練

學習了bp神經網路演算法,剛開始最終要的一點不明白的就是前一層和後一層 這裡指的只有三層,輸入層,隱藏層,輸出層 的權重,其實神經網路演算法中,前一層的每乙個節點和後一層的每乙個節點都有連線權重,初始權重是隨機的。而更新權重是通過輸出層的值來反向更新的。基本過程如下 1.輸入第乙個訓練樣本 對應的就...

神經網路的訓練

既然我們希望網路的輸出盡可能的接近真正想要 的值。那麼就可以通過比較當前網路的 值和我們真正想要的目標值,再根據兩者的差異情況來更新每一層的權重矩陣 比如,如果網路的 值高了,就調整權重讓它 低一些,不斷調整,直到能夠 出目標值 因此就需要先定義 如何比較 值和目標值的差異 這便是損失函式或目標函式...

神經網路訓練技巧

1 學習速率。首先設學習速率為乙個較大的值,確保training cost在不斷下降。當accuracyy在n個epoch內不再增加時,使得學習速率減小一半。重複迭代,直到學習速率變成原來的1 1024。2 學習速率要根據訓練cost調。但是網路層數和神經元數目,mini batch size要根據...