出于对性能和多GPU训练CNN的考虑,这段时间一直在研究cuda-convnet2。
搜了下,网上居然一篇像样的研究cuda-convnet2 代码的文章都找不到,看来假期有的忙了。
Caffe作者贾扬清也在一些场合表达了对Convnet2作者Alex的仰慕之情,可见两个CNN实现的差距。
Caffe比较符合大众的口味,而convnet2符合GPU发烧友的追求。
convnet2代码风格不如Caffe那样有条理。
Caffe本质是单线程的,或者是CPU思维方式。convnet2是多线程的,属于GPU思维方式。
Caffe过度依赖库函数(glob, gflags, leveldb, lmdb, mkl/blas……),而convnet2几乎全都自己搞定。
Caffe参数设置更自由,而convnet2出于性能考虑,参数设置约束较多。
Caffe接近软件,而convnet2接近硬件。
Caffe适合懒人,convnet2适合极客。