Caffe tutorial 之 前向與反向傳播

2021-08-03 20:23:15 字數 712 閱讀 3886

本文參考forward and backward。

前向與後向傳播是網路中重要的計算部分。

接下來以簡單的邏輯回歸分類器為例介紹。

前向傳播用於計算推理過程中給定輸入的輸出。在前向傳播中,caffe將每層的計算進行組合從而得到模型所代表的「函式」。此過程由底向上進行。

資料x經過全連線層(內積層)生成g(

x),之後通過softmax層產生h(

g(x)

) ,從而給出softmax損失fw

(x) 。

反向過稱用於計算給定損失的梯度。在反向傳播中,caffe將每層的梯度反向組合以自動計算整個模型的梯度。此即反向傳播,此過程由頂向下進行。

反向過程起始於損失值並且計算輸出∂f

w∂h 。模型中剩餘部分的梯度將會根據鏈式法則逐層計算。含有引數的層,如inner_product層,在反向傳播中根據其引數計算梯度∂f

w∂wi

p 這些計算會根據模型的計算立即執行: caffe會自動執行前向及後向傳播。

solver第一次進行前向傳播產生輸出和損失,之後進行反向傳播算得模型梯度,之後根據梯度更新模型引數以最小化損失。通過將solver、net和layer的分離,從而使caffe模組化,易於開發。

caffe中不同型別的層的前向和反向傳播的細節,請參見layer catalogue。

寫在畢業之前

人生有很多抉擇,就象人經常站點三叉路口一樣。在學校的生活總是很愜意的,因為這裡可以認識非常多的沒有心計的朋友 激發自己創意靈感 和保持一顆很有野心的抱負。現在快畢業了,想起來真的很快,這3年,彈指一揮間。留下了很多美好的回憶,同時也給自己留下來許多遺憾,不過還好,我總是能自醒,知道自己落後了,然後就...

在你編碼之前

很多開發者,將自己限定為程式設計師,覺得自己就是乙個專業寫 的,和 稍微遠一點東西,就不感興趣。在前一篇文章 軟體開發之未來 中,我已經闡述了技術的時效性以及快速更新。如果我們緊緊把目光侷限在 而不是分析 解決問題的綜合能力,我們將遲早陷入中年危機,被奔騰的技術潮流淘汰。這篇文章我想講講分析問題 解...

main之前執行

分類 c 2013 01 25 14 56 1480人閱讀收藏 舉報 一 main結束 不代表整個程序結束 1 全域性物件的建構函式會在main 函式之前執行,全域性物件的析構函式會在main函式之後執行 用atexit註冊的函式也會在main之後執行。2 一些全域性變數 物件和靜態變數 物件的空間...