caffe for windows的matlab介面問題

時間 2021-06-03 00:17:18

1樓:

caffe for windows中的matlab經常會崩死,本質是mex包在caffe遇到錯誤又不能自行容錯的情況下會直接kill掉自己的thread,但是又不給matlab report,結果就是matlab shability地等著mex,等著等著發現不對勁就崩了。(總之就是不會try catch throw啦)

主要有兩種原因:

1.你自己操作的原因。比如init solver的時候載入了乙個不合法的prototxt,或者載入資料的維數不對,或者init solver的時候載入的初值模型和prototxt描述的不一致的地方無法自適應。

這些初學者犯的錯誤可以通過看log來解決。舉個栗子:

為了模擬一種錯誤,我寫了乙個不合法的prototxt進行載入。

首先確定你的matlab是在哪一行崩的。假設是如下這樣的一行:

DNN.

caffe_mex

('init_solver'

,'solver.prototxt',''

,[root_folder

,'\log\'

]);檢視\log\裡的log的最後幾行,如下

F0731 19:50:45.

117125 36612 insert_splits.cpp:35] Unknown blob input conv1b to layer 0

F0731 19:50:45.

117125 36612 insert_splits.cpp:35] Unknown blob input conv1b to layer 0

這就是典型的prototxt不合法,需要檢查網路拓撲是否合理。

建議初學者先用c++介面來做,這樣好歹log是可以直接輸出的,不會像matlab那樣整個IDE都崩掉。調的比較快,等網路調通了再上matlab跑。

2.caffe的bug。這個可能性比較低,尤其是如果你用的是原版caffe的話。

這種情況的特徵是log裡不顯示任何異常資訊但是matlab就是崩了。。。這種情況通常是因為caffe沒有考慮到某種錯誤導致沒有log輸出。反正是開源的,建議你還是回到C++版本用vs除錯一下。

問一下,VLANif介面收到不帶tag的資料幀會給資料幀打上自己的tag嗎?

網路菜鳥薛 提問本身就有問題,vlanif是乙個三層邏輯介面,只有二層物理介面處理完的資料報才會傳送給vlanif,既然他是三層的,自然接收到的資料已經是剝去二層封裝的,所以他是不可能收到資料幀的,更不用談新增vlan tag這種操作。牢記!增刪改查vlan的操作都是二層的 華為的命令列和概念我都不...

產品設計(經理)與介面設計為什麼會出現溝通問題?

產品設計分兩塊 一塊是和美術設計一塊在八十年代改革開放開始一起成長起來的工業設計,諸如工業造型專業,汽車造型專業出來的科班人員,另一塊就是近六七年來網際網路的迅猛發展,可是網際網路行業起來就二十個年頭,可迅猛發展也就這近十年,近六七年智慧型移動端的發展帶動產生了諸如UI,UX,前端等等職位,以前根本...

JAVA的子介面可以覆蓋父介面中的方法,這樣做有什麼意義嗎?

飯後一杯酒 這樣做是沒有意義的。因為介面本身的意義在於對行為的抽象,以spring中BeanFactory為例,其存在的含義在於定義如何建立 獲取beanDefinition。而建立 獲取beanDefinition可以看作是一種行為,BeanFactory則完成了對這些行為的定義。那麼子介面又是做...