Caffe のインストールと動作確認(Ubuntu 上)

Caffe は,カリフォルニア大学バークレー校の BAIR (Berkeley AI Research) で開発された深層学習フレームワークである.最終リリースは 1.0(2017年4月)であり,現在は新機能の追加が行われていない.Ubuntu の公式パッケージ(caffe-cpu, caffe-cuda)が提供されていたのは Ubuntu 20.04 (focal) までであり,Ubuntu 22.04 以降には収録されていない.したがって,Ubuntu 22.04 以降ではソースコードからのビルドが必要である.

Caffe 1.0 は,cuDNN 8 以降の API 変更(cudnnGetConvolutionForwardAlgorithm 等の廃止)や OpenCV 4 での定数廃止(CV_LOAD_IMAGE_COLOR 等)に対応していない.このページでは,これらを回避する設定(USE_CUDNN=OFFUSE_OPENCV=OFF)でビルドする手順を示す.

前準備

Ubuntu のシステム更新

Ubuntu で OS のシステム更新を行うときは, 端末で,次のコマンドを実行する.パッケージ情報を最新の状態にし,インストール済みのパッケージをセキュリティ更新やバグ修正を含めて更新するためである.

Ubuntu のインストールはこちらの別ページで説明する.
# パッケージリストの情報を更新
sudo apt update
# インストール済みのパッケージを包括的に更新 (依存関係も考慮)
sudo apt full-upgrade
# カーネル更新等で実際に再起動が必要な場合のみ実行を推奨
# sudo shutdown -r now

Python3 開発用ファイル,pip, setuptools, venv のインストール(Ubuntu 上)

Python のインストールは行わない(Ubuntu のシステム Python を用いる.)

Python, pip のコマンドでの起動のまとめ.

Ubuntu のシステム Python を用いるとき, python, pip は,次のコマンドで起動できる.

Ubuntu での Python 開発環境(JupyterLab, spyder, nteract)のインストール: 別ページ »で説明

Python3 開発用ファイル,pip, setuptools, venv のインストール

端末で,次のコマンドを実行する.

# パッケージリストの情報を更新
sudo apt update
sudo apt -y install python-is-python3 python3-dev python-dev-is-python3 python3-pip python3-setuptools python3-venv python3-numpy build-essential

NVIDIA ドライバ,NVIDIA CUDA ツールキット,NVIDIA cuDNN のインストール(Ubuntu 上)

GPU を用いたビルドを行う場合のみ必要である.CPU のみで利用する場合は不要である.

Ubuntu での NVIDIA ドライバ,NVIDIA CUDA ツールキット,NVIDIA cuDNN のインストール: 別ページ »で説明

Caffe のビルドに必要なパッケージのインストール

端末で,次のコマンドを実行する.Caffe は,protobuf, LevelDB, Snappy, LMDB, HDF5, BLAS (ATLAS), gflags, glog, Boost に依存する.

# パッケージリストの情報を更新
sudo apt update
sudo apt -y install build-essential cmake git pkg-config \
  libprotobuf-dev protobuf-compiler \
  libleveldb-dev libsnappy-dev liblmdb-dev libhdf5-dev \
  libatlas-base-dev libgflags-dev libgoogle-glog-dev \
  libboost-all-dev

Caffe のソースコードの取得とビルド(CPU 版)

  1. Caffe のソースコードを取得する

    端末で,次のコマンドを実行する.

    cd $HOME
    git clone https://github.com/BVLC/caffe.git
    cd caffe
    
  2. CMake で構成し,ビルドする

    端末で,次のコマンドを実行する.CPU_ONLY=ON は CPU のみで動作させる設定,USE_OPENCV=OFF は OpenCV 4 との非互換によるビルドエラーを避けるための設定,python_version=3 は Python 3 用の pycaffe を生成するための設定である.

    mkdir -p build
    cd build
    cmake .. \
      -DCMAKE_BUILD_TYPE=Release \
      -DCPU_ONLY=ON \
      -DUSE_OPENCV=OFF \
      -DUSE_NCCL=OFF \
      -DBUILD_python=ON \
      -Dpython_version=3
    make -j$(nproc)
    
  3. テストを実行する

    端末で,次のコマンドを実行する.

    make runtest
    
  4. エラーメッセージが出ていないことを確認する.

GPU (CUDA) を利用してビルドする場合

NVIDIA ドライバと NVIDIA CUDA ツールキットのインストールを済ませてから行う. Caffe 1.0 は cuDNN 8 以降に対応していないため,USE_CUDNN=OFF を指定する. また,Caffe 1.0 の既定の GPU アーキテクチャ一覧には,新しい CUDA ツールキットが対応しない古い世代(compute capability 2.0, 3.5 など)が含まれるため,CUDA_ARCH_NAME=Manual を指定して,使用する GPU の compute capability のみを指定する.

端末で,次のコマンドを実行する.CUDA_ARCH_BIN の値は使用する GPU の compute capability に置き換える(例:GeForce RTX 30 シリーズは 86,GeForce RTX 40 シリーズは 89).

cd $HOME/caffe
mkdir -p build-gpu
cd build-gpu
cmake .. \
  -DCMAKE_BUILD_TYPE=Release \
  -DCPU_ONLY=OFF \
  -DUSE_CUDNN=OFF \
  -DUSE_OPENCV=OFF \
  -DUSE_NCCL=OFF \
  -DBUILD_python=ON \
  -Dpython_version=3 \
  -DCUDA_ARCH_NAME=Manual \
  -DCUDA_ARCH_BIN="86" \
  -DCUDA_ARCH_PTX=""
make -j$(nproc)
make runtest

動作確認

  1. caffe コマンドの確認

    端末で,次のコマンドを実行する.バージョン情報が表示されれば,ビルドは成功している.

    $HOME/caffe/build/tools/caffe --version
    
  2. pycaffe の確認

    端末で,次のコマンドを実行する.PYTHONPATH に pycaffe のディレクトリを追加してから,import を行う.

    export PYTHONPATH=$HOME/caffe/python:$PYTHONPATH
    python3 -c "import caffe; print(caffe.__version__)"
    

    端末を起動するたびに設定を有効にするときは,端末で,次のコマンドを実行する.

    echo 'export PYTHONPATH=$HOME/caffe/python:$PYTHONPATH' >> ~/.bashrc
    source ~/.bashrc
    
  3. エラーメッセージが出ていないことを確認する.