神經網路中訓練和推理有什麼區別?

時間 2021-06-04 23:54:26

1樓:tohnee

1. 推斷(Inference)的網路權值已經固定下來,無後向傳播過程,因此可以

模型固定,可以對計算圖進行優化,還可以輸入輸出大小固定,可以做memory優化(注意:有乙個概念是fine-tuning,即訓練好的模型繼續調優,只是在已有的模型做小的改動,本質上仍然是訓練(Training)的過程,TensorRT沒有fine-tuning

2. 推斷(Inference)的batch size要小很多,仍然是latency的問題,因為如果batch size很大,吞吐可以達到很大,比如每秒可以處理1024個batch,500毫秒處理完,吞吐可以達到2048,可以很好地利用GPU;但是推斷(Inference)不能做500毫秒處理,可以是8或者16,吞吐降低,沒有辦法很好地利用GPU.

3. 推斷(Inference)可以使用低精度的技術,訓練的時候因為要保證前後向傳播,每次梯度的更新是很微小的,這個時候需要相對較高的精度,一般來說需要float型,如FP32,32位的浮點型來處理資料,但是在推斷(Inference)的時候,對精度的要求沒有那麼高,很多研究表明可以用低精度,如半長(16)的float型,即FP16,也可以用8位的整型(INT8)來做推斷(Inference),研究結果表明沒有特別大的精度損失,尤其對CNN。更有甚者,對Binary(二進位制)的使用也處在研究過程中,即權值只有0和1。

目前FP16和INT8的研究使用相對來說比較成熟。低精度計算的好處是一方面可以減少計算量,原來計算32位的單元處理FP16的時候,理論上可以達到兩倍的速度,處理INT8的時候理論上可以達到四倍的速度。當然會引入一些其他額外的操作,後面的講解中會詳細介紹FP18和INT8;另一方面是模型需要的空間減少,不管是權值的儲存還是中間值的儲存,應用更低的精度,模型大小會相應減小。

RBF神經網路和BP神經網路有什麼區別?

DomainAdaptation 1,從模型結構上來看 RBF神經網路從圖形結構上來說,就是一種單隱層的神經網路.這個隱層的每個神經元輸出的是乙個RBF函式的值,這些RBF函式的核寬都是一樣的,它們中心要麼是每個訓練樣本點,要麼是訓練樣本點的聚類中心,當然還可以有其他。核化的支援向量機就可以看成是一...

神經網路中難樣本和噪音樣本有什麼區別?

蔣路 小loss樣本可以用來區分clean or noisy labels,是我們之前提出的乙個簡單的方法,理論上是基於課程學習 curriculum learning 比如 Jiang,Lu,et al.Mentornet Learning data driven curriculum for v...

怎樣克服神經網路訓練中argmax的不可導性?

章浩 一句話解釋 正向傳播就和往常一樣,反向傳播時,將梯度從不可導那個點copy到不可導點的前面的最近乙個可導點。請看紅線右端點的梯度,跳過中間的字典模組,直達紅線的左端點 問題來了 1 梯度鏈條怎麼隔斷不讓他經過字典模組?pytorch有個 detach 可以隔斷梯度,梯度就不會進入不可導區域引發...