通常咱們在使用Caffe的時候,可能須要根據本身的任務需求添加一些自定義的Loss,固然這個Loss能夠根據本身的須要來添加。好比在這裏我添加的是triplet_loss爲例網絡
在這裏若是咱們要添加一個新的loss,創建了相應的頭文件和實現文件,在書寫測試文件。
若是直接運行測試
make all make test make runtest
雖然make 命令會根據編譯文件的時間戳來跳過大部分文件,可是make runtest花的時間會比較長,由於他把全部的test文件都跑了一遍,當咱們本身須要添加文件時,並不須要runtest。ui
這個時候咱們須要稍微修改一下makefile,我以爲雖然咱們如今不是手寫makefile,可是基本的一些makefile的語法規則仍是要了解一下的。
根據make命令的格式code
make [target]
咱們在make 時執行的就是後面的target,所以打開makefile文件blog
下圖是我直接make runtest時的報錯,通常都不會那麼順利噠.
接口
所以爲了避免必要的每次make runtest,咱們看一下makefile內部這裏要說一下makefile 的格式ip
target: $(prerequisite) [tab] [command]
首先咱們須要明白make 作的事構建
,對應的是咱們IDE中的build,他並非compile,是準備各類資源配置,爲編譯作準備,具體的編譯仍是交給了GCC這樣的編譯器。資源
在上面的格式中,首行中的target 目標咱們的目標,在咱們make runtest
,則會跳轉到這個target開始執行,冒號後面跟着的是前置條件,即這個target
要知足的依賴條件第二行是一個tab
鍵,get
當咱們在make runtest
以前,咱們已經執行了make test
,即會生成test相關的可執行文件,所以在這裏咱們輸入咱們相應的.testbin
文件路徑,這個應該是在.build_release/test/
目錄下,所以咱們能夠添加一個咱們本身的target
以下
編譯器
這樣咱們在跑的時候每次make all
,make test
以後直接運行make runtest_triplet
,即直接運行咱們須要的test文件,方便咱們進一步作測試和修改