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 以降ではソースコードからのビルドが必要である.
cudnnGetConvolutionForwardAlgorithm 等の廃止)や OpenCV 4 での定数廃止(CV_LOAD_IMAGE_COLOR 等)に対応していない.このページでは,これらを回避する設定(USE_CUDNN=OFF,USE_OPENCV=OFF)でビルドする手順を示す.
前準備
Ubuntu のシステム更新
Ubuntu で OS のシステム更新を行うときは, 端末で,次のコマンドを実行する.パッケージ情報を最新の状態にし,インストール済みのパッケージをセキュリティ更新やバグ修正を含めて更新するためである.
# パッケージリストの情報を更新
sudo apt update
# インストール済みのパッケージを包括的に更新 (依存関係も考慮)
sudo apt full-upgrade
# カーネル更新等で実際に再起動が必要な場合のみ実行を推奨
# sudo shutdown -r now
Python3 開発用ファイル,pip, setuptools, venv のインストール(Ubuntu 上)
Python のインストールは行わない(Ubuntu のシステム Python を用いる.)
Ubuntu のシステム Python を用いるとき, python, pip は,次のコマンドで起動できる.
- python3 (Ubuntu のシステム Python)
- sudo pip3 (pip 3)
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 版)
- Caffe のソースコードを取得する
端末で,次のコマンドを実行する.
cd $HOME git clone https://github.com/BVLC/caffe.git cd caffe - 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) - テストを実行する
端末で,次のコマンドを実行する.
make runtest
- エラーメッセージが出ていないことを確認する.
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
動作確認
- caffe コマンドの確認
端末で,次のコマンドを実行する.バージョン情報が表示されれば,ビルドは成功している.
$HOME/caffe/build/tools/caffe --version - 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 - エラーメッセージが出ていないことを確認する.