????本文主要是對caffe2官方文檔中Intro Tutorial的梳理,并不是逐字翻譯,簡書已經(jīng)有對這份文檔的翻譯,(一定要主讀原文!翻譯配合閱讀?。┑枪俜轿臋n是在不斷更新的,本人覺得這份新的文檔首先用model_helper來創(chuàng)建網(wǎng)絡(luò)對新手理解caffe2構(gòu)建網(wǎng)絡(luò)的形式更加友好,因此就打算梳理下這份內(nèi)容,原文:Intro Tutorial

? ? 文章首先大致介紹了blobs和workspace,blobs一般包含一個tensor(一個多維數(shù)組),且在python中會被轉(zhuǎn)化為numpy數(shù)組。然后介紹了blobs在workspace中存儲、讀取數(shù)據(jù)的方式。
? ? 文中試圖創(chuàng)建一個簡單的網(wǎng)絡(luò):
? ? (1)一個全連層
? ? (2)一個sigmoid和softmax
? ? (3)CrossEntropy loss
使用ModelHelper創(chuàng)建網(wǎng)絡(luò)會生成兩個網(wǎng)絡(luò):一個用來初始化的網(wǎng)絡(luò)和一個用來訓(xùn)練的網(wǎng)絡(luò)。下面我們來看看文中是如何體現(xiàn)出這兩個網(wǎng)絡(luò)的:
1. 定義權(quán)重和偏置時的初始化方式時,使用的是ModelHelper生成的第一個網(wǎng)絡(luò)param_init_net,其中權(quán)重調(diào)用的是XavierFill op,偏置調(diào)用的是ConstantFill op。
2. 設(shè)置訓(xùn)練網(wǎng)絡(luò)的結(jié)構(gòu)時,使用的是ModelHelper生成的第二個網(wǎng)絡(luò)net,注意同上一段類似,此處只是網(wǎng)絡(luò)的定義,并不實(shí)際運(yùn)行網(wǎng)絡(luò)。
我們分別畫出這兩個網(wǎng)絡(luò)的結(jié)構(gòu)圖(畫圖方式)
初始化網(wǎng)絡(luò):

前向網(wǎng)絡(luò):

分別對比初始化網(wǎng)絡(luò)和前向網(wǎng)絡(luò)的構(gòu)造方式及其網(wǎng)絡(luò)圖,就比較容易理解如何去構(gòu)造一個網(wǎng)絡(luò)。初始化網(wǎng)絡(luò)的構(gòu)造和前向網(wǎng)絡(luò)的構(gòu)造是分開的,后期運(yùn)行時,首先通過運(yùn)行初始化網(wǎng)絡(luò)將數(shù)據(jù)保存至workspace,前向網(wǎng)絡(luò)通過讀取workspace中的數(shù)據(jù)進(jìn)行計(jì)算。