Caffeの環境構築においては、動作に必要な依存ライブラリが複数存在します。以下に、代表的な依存ライブラリとその役割を詳しく説明します。
1. Python関連のライブラリ(Python 2系または3系)
CaffeはPythonバインディングを通じてインターフェースを提供しており、学習・推論スクリプトやテストなどでPythonが使用されます。
-
Python (2.7 または 3.5〜3.7 推奨)
-
NumPy:数値計算ライブラリ。データ操作やベクトル演算で使用されます。
-
protobuf (Pythonバインディング):モデルの構造を記述した
.prototxtファイルの処理に使用されます。 -
scipy:一部のユーティリティ機能で利用されます。
-
matplotlib(オプション):学習曲線などの可視化で使用可能。
2. Boostライブラリ
-
Boost(特に boost-system, boost-thread, boost-filesystem など)
-
CaffeのC++コードではBoostを通じてスレッド処理やファイルシステム操作などを行います。
-
Boost 1.55〜1.67あたりのバージョンが互換性あり。
-
3. OpenCV
-
OpenCV(2.4〜3.xが推奨)
-
画像データの前処理、表示、データ拡張処理に使用されます。
-
cv::imreadやcv::resizeなどがCaffeの内部で使用されます。 -
Pythonインターフェースでは
cv2モジュールとしても利用可能。
-
4. CUDAとcuDNN(GPU版Caffeの場合)
GPUを使って高速に学習・推論を行うには以下のライブラリが必要です。
-
CUDA Toolkit(NVIDIA)
-
CaffeのGPU対応コンポーネントをビルドするのに必須。
-
バージョンはCaffeのビルド対象と使用するGPUのアーキテクチャにより異なる(例:CUDA 8.0、CUDA 10.1 など)。
-
-
cuDNN(NVIDIA)
-
深層学習向けに最適化されたGPU用ライブラリ。
-
Caffeの畳み込み層やプーリング層などで高速処理が可能になる。
-
Caffeビルド時に
USE_CUDNN := 1を設定することで有効化。
-
5. プロトコルバッファ(Protocol Buffers)
-
protobuf(C++ライブラリとcompiler)
-
Caffeのネットワーク定義(
.prototxt)や学習済みモデル(.caffemodel)を処理するために使用。 -
protocコマンドで定義ファイルからソースコードを自動生成。
-
6. その他のC++ライブラリ・ツール
-
glog(Google Logging):ログ出力に使用。
-
gflags(Google Flags):コマンドライン引数のパース処理。
-
hdf5:HDF5形式でのデータの読み書きに使用。
-
LevelDB / LMDB:高速なキーバリュー型データベースで、画像データの格納に利用。
-
BLAS / OpenBLAS / Intel MKL:行列演算の高速化に必要(CPU処理時に重要)。
7. ビルドツール
-
CMake(3.5以上が推奨)
-
ソースコードのビルド設定を生成。
-
-
Make / Ninja:ビルドの実行(
make allなど)。
まとめ:インストールの一例(Ubuntuの場合)
CUDAやcuDNNはNVIDIAの公式サイトから別途ダウンロード・インストールが必要です。
生成日:2025/05/23