必要な依存ライブラリ(Python, Boost, OpenCV, CUDAなど)

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::imreadcv::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の場合)

bash
sudo apt-get install -y \ build-essential cmake git libprotobuf-dev libleveldb-dev libsnappy-dev \ libopencv-dev libhdf5-serial-dev protobuf-compiler \ libgflags-dev libgoogle-glog-dev liblmdb-dev \ python3-dev python3-numpy python3-scipy python3-matplotlib

CUDAやcuDNNはNVIDIAの公式サイトから別途ダウンロード・インストールが必要です。

生成日:2025/05/23