如果想更好地从代码角度理解演算法原理及相关实现细节,哪一个框架更好?


这个问题直接看一篇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初看很难理解,理解以后编程水平就上了一个台阶了,能达到小神级别


推荐阅读:
相关文章