Cuda-Convnet和Caffe相比分別有什麼優缺點?
如果想更好地從代碼角度理解演算法原理及相關實現細節,哪一個框架更好?
這個問題直接看一篇paper就行了,裡面有詳盡的對比:Caffe: Convolutional Architecture for Fast Feature Embedding
個人很喜歡caffe,裡面的代碼很清晰,github上的各種討論也很活躍。
借卜居的話來說:
Caffe比較符合大眾的口味,而convnet2符合GPU發燒友的追求。
convnet2代碼風格不如Caffe那樣有條理。
Caffe本質是單線程的,或者是CPU思維方式。convnet2是多線程的,屬於GPU思維方式。
Caffe過度依賴庫函數(glob, gflags, leveldb, lmdb, mkl/blas……),而convnet2幾乎全都自己搞定。
Caffe參數設置更自由,而convnet2出於性能考慮,參數設置約束較多。
Caffe接近軟體,而convnet2接近硬體。
Caffe適合懶人,convnet2適合極客。
caffe是cnn的一個開源框架,cuda是nv出的一套並行計算標準,caffe中可以用nv開發的cudnn進行加速
caffe代碼更容易弄懂,cuda更快。
caffe很好理解,但代碼還有不少改進餘地cuda-convnet初看很難理解,理解以後編程水平就上了一個台階了,能達到小神級別
推薦閱讀: