如果想更好地從代碼角度理解演算法原理及相關實現細節,哪一個框架更好?


這個問題直接看一篇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初看很難理解,理解以後編程水平就上了一個台階了,能達到小神級別


推薦閱讀:
相关文章