一:在caffe搭建完成之後,開始編寫批處理文件運行mnist模型。
根據各位大神的博客在caffe根目錄下有完成過這個模型的測試,但是考慮到每次還在跑到根目錄下更改批處理文件,後續測試的模型多了就會比較容易搞混了。所以想把批處理文件直接寫caffe-master\data\mnist文件裏面,方便查看。爲了達到這一效果,將批處理文件的相關參數都用了完全路徑重寫編寫
@echo off
color 0b
echo 訓練自制mnist中的img_train_lmdb 使用CPU=1
echo 日期:%date%
set stryear=%date:~0,4%年&set strmonth=%date:~5,2%月&set strday=%date:~8,2%日
echo 時間:%time%
set strhh=%time:~0,2%&set strmm=%time:~3,2%&set strss=%time:~6,2%
if %time:~0,2% leq 9 (set strhh=0%time:~1,1%) else set strhh=%time:~0,2%
set strdatetime = %stryear%%strmonth%%strday%%strhh%%strmm%%strss%
D:\caffe-code\caffe-master\Build\x64\Release\caffe.exe train --solver=D:\caffe-code\caffe-master\examples\mnist\lenet_solver.prototxt >>log\%stryear%%strmonth%%strday%%strhh%-%strmm%-%strss%.txt 2>&1
pause
按照最初的想法,這樣應該沒有問題了。但是實際運行批處理文件的時候,出現如下錯誤:
F0328 15:06:41.453896 8808 solver.cpp:438] Cannot write to snapshot prefix 'examples/mnist/lenet'. Make sure that the directory exists and is writeable.
一直報錯無法查找到examples/mnist/lenet。。。。尷尬啊。。
根據提示,以爲在solver.cpp源文件裏面有相關的目錄引用,仔細查看並沒有。
二:後面看到一篇博客https://zhuanlan.zhihu.com/p/22129880裏面有說到修改lenet_solver.prototxt參數,但是這篇文章只是指出了修改下圖第一處,二沒有說要修改snapshot_prefix參數。在這種情況下,還是會報上面一樣的錯誤。
然而將2處修改完畢之後,便可以將批處理文件隨便放置,也可以保證運行正確。。
三:總結
原始的prototxt文件裏面涉及到路徑的都寫的很含糊,省略了上級路徑,當你稍微一動文件的時候,按照例子來進行跑的時候,就會出現路徑不一致。所以,建議先將路徑全部改爲絕對路徑。