LoginSignup
37
36

More than 5 years have passed since last update.

WindowsでCaffeを使う:環境構築

Last updated at Posted at 2015-08-25

画像認識におけるDeepLearningはCaffeがデファクトスタンダードとなりつつありますが、現状では公式にLinux環境しかサポートされていません。本格的にDeepLearningに取り組むならLinux環境を用意するのが良いでしょうが、Windows環境で使う手もあります。Windows環境しかない方にはお手軽にDeepLearningを試すことができ、Windowsメインで開発される方にとってはDeepLearningをWindowsアプリに組み込むこともできます。

本記事では非公式で公開されているWindows版Caffeの使用方法を解説します。数回に分けて解説を行う予定で、今回は環境構築について書きます。

Caffe公式ページでも紹介されていますが、シンガポール国立大学の方がWindows版CaffeをGitHubに公開しています。
https://github.com/niuzhiheng/caffe

大体のことはREADMEに書いてますが、環境構築手順を以下にまとめます。

準備するもの

必須

  • Windows 64-bitマシン
  • Visual Studio 2012
  • CUDA toolkit 6.5
  • その他依存関係(ここからダウンロード)

推奨

  • GPU

※GPUはなくても動作しますが、CPUモードだとWindows版Caffeのバグで学習がうまくいかない場合があるみたいです。

インストール手順

1. Visual Studio 2012のインストール

64bit版のVisual Studio 2012インストーラーを入手し、インストールします。

2. CUDA toolkit 6.5のインストール

ここから64bit版のCUDA toolkit 6.5をダウンロードし、インストールします。
最新版のCUDA toolkit 7.0がリリースされていますが、Caffeはバージョンの整合性に厳しいので6.5を入れておいた方が無難でしょう。
(7.0での動作は未確認です)

3. プロジェクトのダウンロード

上記のGitHubのページのDownload Zipボタンを押してプロジェクトをダウンロードし、任意のフォルダに解凍します。ここで展開先のフォルダ名を"caffe"にすると何故かビルドできないのでご注意ください。

4. 依存関係のダウンロード

準備項目にも記載しましたが、ここからダウンロードして、プロジェクトのルートディレクトリに解凍します。
解凍したフォルダと同名のフォルダがルートディレクトリにも存在していますが、そのまま統合します。

5. ビルド

./build/MSVCにあるソリューションファイルMainBuilder.slnを開き、プロジェクトを立ち上げます。ターゲットのプラットフォームをx64に指定します。

./toolsに様々なツールに相当するcppファイルがありますが、ビルドしたいツールのcppファイル名をMainCaller.cpp内でインクルードします。
デフォルトでは学習を行うtrain_net.cppが指定されていますので、このままビルドすれば学習機能を持ったツールが作成されます。

ビルドが成功したら./binにMainCaller.exeが吐かれています。
MainCaller.cppをデフォルトのままでビルドすれば、MainCaller.exeは学習ツールとして動作します。

非常に面倒ですが、他のツールもMainCaller.cpp内のインクルードを変えて逐一ビルドする必要があります。全て、MainCaller.exeの名前で吐かれるので、実行ファイルの名前をツールごとに変えておきましょう。(train_net.exe等)

MNISTサンプルで学習してみる

MNISTという手書き文字のデータセットが用意されてますので、手書き文字識別器の学習を行ってみましょう。詳しいことは次回の記事で解説しようと思いますので、ここでは機械的な手順に留めておきます。

前述のビルドで、MainCaller.cppにtrain_net.cppを指定してビルドを行った前提で以下の手順を踏みます。

  1. コマンドライン上で./examples/mnistにカレントディレクトリを移します。
  2. get_mnist_leveldb.batを実行し、データセットをダウンロード・解凍します。mnist-train-leveldb、mnist-test-leveldbというフォルダが作成されていればデータセットの用意は完了です。
  3. GPUがない場合は、lenet_solver.prototxtを開き、solver_modeの項目をGPU→CPUに変更します。これでCPUモードで学習が行われます。
  4. train_lenet.batを実行し、学習を開始します。Iteration 100, loss = ~ のように学習経過が表示されていきます。
  5. 学習が完了したら識別モデルファイルlenet_iter_10000が出力されます。

環境構築の解説は以上になります。
次回はサンプルデータセットを用いたチュートリアルを解説します。

37
36
2

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
37
36