但在測試過程中,碰到以下問題:
錯誤資訊來自:src/caffe/net.cpp中的copytrainedlayersfrom(const netparameter& param)函式,表明載入模型出現了問題。
1、模型會不會與訓練**不匹配?
這個模型是用同樣的caffe**在linux環境下訓練的,在linux下測試也沒有問題,排除了模型不匹配的問題。
2、**在windows和linux下有什麼不同?
caffe.pb.h和caffe.pb.cc是在windows下重新生成的,差別只在這裡了。懷疑protobuf的版本不一致導致的問題,都換為2.5.0版本後,問題仍然存在。
還有一些函式,open/close等,還有一些被注釋了的變數,如果有問題,只可能出現在這裡了。
* 解決方法 *:
在除錯過程中,試著載入了幾個不同的模型,發現函式中的copytrainedlayersfrom中param.layer_size() 都非常小,跟模型的網路層差距很大,問題的原因:模型沒有載入完全,導致後續的解析錯誤。
參照windows下用caffe載入二進位制模型(linux下訓練)的問題,很快就找到了問題所在,src/util/io.cpp函式中:
int fd = open(filename, o_rdonly);
open函式使用o_rdonly在linux下載入二進位制模型沒有問題,但在windows下載入二進位制模型需要加入o_binary選項:
int fd = open(filename, o_rdonly|o_binary);
重新編譯後,執行成功。
其實如果採用官方的caffe-windows是肯定不會出現上述問題的,無奈自己挖的坑含著淚也要填完。不過在這次糾錯過程中,仔細看了之前從來沒有注意的caffe原始碼中的一些細節,也算是因禍得福。
在windows下配置caffe
安裝環境 win7 64bit vs2012 安裝步驟 安裝 cuda6.5 3.解壓caffe原始碼,解壓dependency,分別將dependency根資料夾內三個資料夾的內容分別解壓到caffe中對應的資料夾內 4.執行 bulid mainbulider.sln,將vs的生成物件設定為64...
關於Windows下安裝caffe
目前只為練手,因此只用cpu練習。配環境。等cpu上面熟練了再練習安裝cuda。先說目前遇到的bug。2.我用的visual studio2013 ultimate版本。3.進入解壓的caffe master commonsettings.props.example重名名為commonsetting...
windows下caffe中python介面的編譯
最近研究fcn時需要編譯caffe的python介面。折騰了好幾天,遇到了不少問題,總結下吧,以後說不定還會遇到。問題1 編譯時遇到 errorc1905 前端和後端不相容 必須以同一處理器為目標 分析 這個是要要編譯win32的平台,卻呼叫了x64的庫造成的。我的windows是64位,裝的pyt...