Caffe2的特性
Caffe2框架可以通过一台机器上的多个GPU或具有一个及多个GPU的多台机器来进行分布式训练。
也可以在iOS系统、Android系统和树莓派(Raspberry Pi)上训练和部署模型。
只需要运行几行代码即可调用Caffe2中预先训练好的Model Zoo模型。
Caffe2框架已经应用在Facebook平台上。
NVIDIA(英伟达),Qualcomm(高通),Intel(英特尔),Amazon(亚马逊)和Microsoft(微软)等公司的云平台都已支持Caffe2。
GitHub上有Caffe2的源代码
- Caffe2的首页:http://caffe2.ai/
Facebook 部署 Caffe2 旨在帮助开发人员和研究人员 训练大规模机器学习模型,并在移动应用中提供 AI 驱动的用户体验。现在,开发人员可以获取许多相同的工具,能够在大规模分布式场景训练模型,并为移动设备创建机器学习应用。
Caffe2 是一个兼具表现力、速度和模块性的深度学习框架,是 Caffe 的实验性重构,能以更灵活的方式组织计算。
Caffe2安装
官网上的安装教程
依赖库
sudo apt-get update
sudo apt-get install -y --no-install-recommends \build-essential \cmake \git \libgoogle-glog-dev \libprotobuf-dev \protobuf-compiler \python-dev \python-pip
sudo pip install numpy protobuf
GPU支持
Ubuntu 16.04
sudo apt-get update && sudo apt-get install wget -y --no-install-recommends
wget "http://developer.download.nvidia.com/compute/cuda/repos/ubuntu1604/x86_64/cuda-repo-ubuntu1604_8.0.61-1_amd64.deb"
sudo dpkg -i cuda-repo-ubuntu1604_8.0.61-1_amd64.deb
sudo apt-get update
sudo apt-get install cuda
安装 cuDNN(所有都是 Ubuntu 版本)
CUDNN_URL="http://developer.download.nvidia.com/compute/redist/cudnn/v5.1/cudnn-8.0-linux-x64-v5.1.tgz"
wget ${CUDNN_URL}
sudo tar -xzf cudnn-8.0-linux-x64-v5.1.tgz -C /usr/local
rm cudnn-8.0-linux-x64-v5.1.tgz && sudo ldconfig
可选择的依赖项
# for Ubuntu 16.04
sudo apt-get install -y --no-install-recommends libgflags-dev
# for both Ubuntu 14.04 and 16.04
sudo apt-get install -y --no-install-recommends \
libgtest-dev \
libiomp-dev \
libleveldb-dev \
liblmdb-dev \
libopencv-dev \
libopenmpi-dev \
libsnappy-dev \
openmpi-bin \
openmpi-doc \
python-pydot
sudo pip install \
flask \
graphviz \
hypothesis \
jupyter \
matplotlib \
pydot python-nvd3 \
pyyaml \
requests \
scikit-image \
scipy \
setuptools \
tornado
检查下面的 Python 部分,并在建立 Caffe2 之前安装可选择的程序包。
mkdir build && cd build
cmake ..
make
Clone & Build
git clone --recursive https://github.com/caffe2/caffe2.git && cd caffe2
make && cd build && sudo make install
python -c 'from caffe2.python import core' 2>/dev/null && echo "Success" || echo "Failure"
通过显示为 Success
出现问题见 gflags.cc’ is being linked both statically and dynamically into this execut
GPU测试执行:
python -m caffe2.python.operator_test.relu_op_test
在/usr/local/caffe2、/home/bids/softwares/caffe2/build(你的build路径)路径生成caffe2的python文件,在/usr/local/lib路径生成库文件。
环境变量设置
具体设置更改对应shell的配置文件
sudo vim ~/.bashrc
添加
export PYTHONPATH=/usr/local:$PYTHONPATH
export PYTHONPATH=$PYTHONPATH:/home/bids/softwares/caffe2/build
export LD_LIBRARY_PATH=/usr/local/lib:$LD_LIBRARY_PATH
环境变量生效
source ~/.bashrc
Caffe2 Tutorials
Caffe2 Tutorials Overview
TUTORIAL ON DEEP LEARNING FOR VISION
Hacker’s guide to Neural Networks
Neural Networks and Deep Learning
Caffe2原理
Caffe2 的原理与 Caffe 相同,开发原则可以概括为以下5点:
- 表达(Expression):模型和优化被定义为纯文本模式(plaintext schema)而不是代码。
- 速度:对学界和产业界都一样,速度对于最先进的模型和大数据至关重要。
- 模块化:新任务和设置需要灵活性和扩展性。
- 开放性:科学和应用进步需要通用代码(common code),参考模型和– 重现性(reproducibility)。
- 社区:学术研究、startup prototypes 和工业应用通过在 BSD-2 项目中联合讨论和开发,共享实力。
Caffe2和Caffe有何不同?
Caffe2的基本计算单位是Operator。对于适当数量和类型的输入参数,每个Operator都包括所需的计算逻辑。Caffe和Caffe2的总体差异如下图所示:
官方提供了从Caffe迁移到Caffe2的教程,据说这个迁移非常简单。
Caffe2和PyTorch有何不同?
Caffe2长于移动和大规模部署。虽然Caffe2新增了支持多GPU的功能,这让新框架与Torch具有了相同的GPU支持能力,但是如前所述,Caffe2支持一台机器上的多个GPU或具有一个及多个GPU的多台机器来进行分布式训练。
PyTorch适合进行研究、实验和尝试不同的神经网络;而Caffe2更偏向于工业应用,而且重点关注在移动端上的表现。
Caffe2视作一种生产力的选择,而Torch视作研究型的选择。
参考文献
Caffe2正式发布!新框架有何不同?贾扬清亲自解答
caffe2 安装与介绍
caffe2
【重磅】Facebook 开源产业级深度学习框架 Caffe2,带来跨平台机器学习工具
Caffe2 Open Source Brings Cross Platform Machine Learning Tools to Developers