1.2.3 Caffe

Caffe是由AI科学家贾扬清在加州大学伯克利分校读博期间主导开发的,是以C++/CUDA代码为主的早期深度学习框架之一,比TensorFlow、MXNet、PyTorch等都要早。Caffe需要进行编译安装,支持命令行、Python和Matlab接口,单机多卡、多机多卡等都可以很方便使用。

Caffe的基本特性如下。

  • 以C++/CUDA/Python代码为主,速度快,性能高。
  • 工厂设计模式,代码结构清晰,可读性和可拓展性强。
  • 支持命令行、Python和Matlab接口,使用方便。
  • CPU和GPU之间切换方便,多GPU训练方便。
  • 工具丰富,社区活跃。

同时,Caffe的缺点也比较明显,主要包括如下几点。

  • 源代码修改门槛较高,需要实现正向/反向传播。
  • 不支持自动求导。
  • 不支持模型级并行,只支持数据级并行。
  • 不适合非图像任务。

虽然Caffe已经提供了Matlab和Python接口,但目前不支持R语言。caffeR为Caffe提供了一系列封装功能,允许用户在R语言上运行Caffe,包括数据预处理和网络设置,以及监控和评估训练过程。该包还没有CRAN版本,感兴趣的读者可以在GitHub找到caffeR包的安装及使用的相关内容。