tiny-dnn
作圖
tiny-dnn–sinus_fit 正弦函數拟合
調試預準備
- 去掉并行選項, 使用單線程, 這樣可以看到完整的調用棧
- 熟悉 intel的 進階向量擴充指令集: Advanced Vector Extensions,簡稱AVX
- 對代碼做一些修改,友善調試,具體見分支 prgrmz/dev
prgrmz/dev
- 以回歸問題sinus_fit.cpp為例子
sinus_fit : 拟合正弦函數
名稱解釋
bwd_*
- bwd: barkward的縮寫
- bwd_in_data:
在網絡中,從後往前看,當看某層時,該層的輸入資料 叫 bwd_in_data
常見…
基本是以層layer為話語對象 , 來寫的代碼
比如 layer.h :: tiny_dnn::layer 的子類 fully_connected_layer.h 全連接配接層
- fwd_in_data_, fwd_out_data_
在該網絡中,從前向後依次經過各層,喂給目前層的輸入叫做 fwd_in_data_,目前層吐出的輸出叫 fwd_out_data_
- bwd_in_data_, bwd_out_data_
在該網絡中,從後向前依次經過各層,喂給目前層的輸入叫做 bwd_in_data_,目前層吐出的輸出叫 bwd_out_data_
- 注意,fwd_in_, bwd_in_, fwd_out_, bwd_out_ 中的 in都是左邊的,out都是右邊的。 in、out的含義有這種一緻性。
- 但實際上 向量 fwd_in_data_ , bwd_in_data_ 中有三個元素, 依次是 data、weight、bias
可見 , fwd_in_data_ , bwd_in_data_ 實際上 既是 喂給 目前層 的輸入資料,又包含了 目前層自身的權重。
即 fwd_in_data_ , bwd_in_data_ 實際上 名不副實,應該是為了代碼寫起來友善。
- in_type_, out_type_
in_type_ : 表示 fwd_in_data_ , bwd_in_data_ 中個元素的類型, 即 data、weight、bias
out_type_ : 表示 fwd_out_data_ , bwd_out_data_ 中元素的類型, 即 data
- fwd_ctx_, bwd_ctx_
fwd_ctx_.in_data_ : 是 fwd_in_data_的同義詞,指向的是同一個對象
fwd_ctx_.out_data_ : 是 fwd_out_data_的同義詞,指向的是同一個對象
bwd_ctx_.in_data_ : 是 bwd_in_data_的同義詞,指向的是同一個對象
bwd_ctx_.out_data_ : 是 bwd_out_data_的同義詞,指向的是同一個對象