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初看很难理解,理解以后编程水平就上了一个台阶了,能达到小神级别
推荐阅读: