OpenCV3.2+Tensorflow1.0.1環境構築メモ

1 Star2 Stars3 Stars4 Stars5 Stars (まだ評価されていません)
Loading...

久しぶりにPC環境Ryzenを一新したので、画像処理系をやるべく環境構築作業中。
作業振り返りと似たような環境の方への情報になればと思いメモ作成。
あとはRyzen人柱。
(最終ビルド日2016/04/10)

1.ハードウェア&OS構成

現在の構成を以下に示します。

要素 名称
CPU AMD Ryzen7 1700 (3.3GHz OC)
M/B MSI X370 GAMING PRO CARBON (BIOS v1.2)
Memory DDR4 2667MHz 8GB x 2
OS Windows10 Pro 64bit
Graphic Geforce GTX 1060 6GB

「まだ不安定~」とか言われているRyzenですが、4/9時点では問題なく動いている。
なんというかメモリの相性がキモのような。
自分もBIOS1.0の時はメモリが2400MHzまでしか認識しなかったけどアプデでちゃんと2667MHzまで動くようになりましたし。
メーカーの対応表を見つつ最新BIOSで動かす感じで。
今回はGPU動くようにするのを目標にしています。GTX1060とは言えせっかく載せてるし。

2.構築目標

今回の構築目標はWindows10環境下で以下の3つを利用可能にすること
・OpenCV3.2
・TensorFlow1.0.1(GPU版)(+Keras2.0.3)
・CUDA8.0
OpenCVは細かい設定をするためCMakeでビルドします。

3.事前導入ソフトウェア

OpenCVのビルド開始前に導入するソフトウェアを以下に示します。
断りのない限り64bit版を導入しています。

名称 バージョン
Microsoft Visual Studio Community 2015
Cuda Tool Kit 8.0
cuDNN 5.1
CMake 3.8.0-rc4 64bit
Git For Windows 2.12.2.windows.2
Anaconda3 4.2.0

CUDAとAnacondaは注意点があります、後述。

4.CUDA導入注意点

TensorFlow1.0系でサポートしているCUDAは8.0およびcuDNN5.1です。
これらを導入する際は以下に注意してください。

・cuDNNはNVIDIAのページで登録が必要
・GPUはCompute Capability(NVIDIAのページ参照)3.0以上のもの
・CUDA8.0の正式サポートVisualStudioは2015のみ
・NSightの設定が面倒なのでVisualStudioを事前に入れる

NSightは再度インストーラ立ち上げればあとからも差分で入れられます。

5.Anaconda導入注意点

TensorFlowのサポートするPythonが現在3.5系のみなので、これをAnacondaで入れます。
注意点はこの記事作成時の最新である4.3.1ではなく4.2.0を使用している点です。
インストールはAll User設定で、PATHにも追加し、システムのPythonにPython3.5を登録します。
なんか、このシステムに登録というのがレジストリに設定しているようで(追及未完了)、4.3.1を入れると
これがPython3.6になってしまい、仮に後でPythonを3.5.2にデグレしてもBUILD_opencv_python3の項目が
出ないなどうまくビルドできなくなります。
以上まとめると。

インストーラはAnaconda3 4.2.0を使用
conda update はしない
・面倒なことになりそうなのでroot環境を使う
・インストール後の状態でそのままpipでtensorflow-gpu, kerasを入れる
・上記作業はAnaconda Promptの管理者権限で(良く忘れる)

仮想環境も3.5なら大丈夫だと思いますが試してません。
導入が完了したらipython等でimport kerasしてちゃんとgpu版のTensorFlowとKerasが入っていることを確認。

3.事前導入ライブラリ

OpenCVビルド前に以下のライブラリを導入しました。

名称 バージョン
Eigen 3.3.3
Intel TBB 2017 Update5

Eigenとかヘッダだけだから別にCMakeで入れないでパス通すだけでもいいけど今回は気分でCMakeで入れました。
大体のCMakeプロジェクトは「C:\Program Files」等の書き込みに管理者権限が必要なディレクトリにインストールしようとするため、VisutalStudioは管理者権限で実行するものとします。
TBBは公式から最新のwin向けのzipを落としてきて今回は「D:\workspace\tbb」に入れました。
環境変数に以下のパスを追加
・D:\workspace\tbb\bin
・D:\workspace\tbb\bin\intel64\vc14 (←使用コンパイラに合わせる。)
・D:\workspace\tbb\include
・C:\Program Files\Eigen3

4. CMakeの時間だ

CMakeの設定で今回デフォルトから変えたところを以下に挙げます。

パラメータ 設定値 備考
CUDA_FAST_MATH 有効 気分で。
CUDA_ARCH_BIN 6.1 NvidiaでComputational Capabilityを調べて対応するGPUのみ入力。
BUILD_opencv_python3 有効 python3バインドのビルド。
BUILD_PERF_TESTS 無効 通らないので除外。
TBB_ENV_INCLUDE D:/workspace/tbb/include インストール場所に合わせる。
TBB_ENV_LIB D:/workspace/tbb/lib/intel64/vc14/tbb.lib インストール場所、コンパイラに合わせる。
TBB_ENV_LIB_DEBUG D:/workspace/tbb/lib/intel64/vc14/tbb_debug.lib インストール場所、コンパイラに合わせる。
TBB_VER_FILE D:/workspace/tbb/include/tbb/tbb_stddef.h インストール場所に合わせる。
WITH_CUDA 有効 CUDA使用
WITH_EIGEN 有効 Eigen使用
WITH_TBB 有効 TBB使用

これで、Debug, ReleaseでINSALLビルドすると、ざっくり3時間弱ぐらいで完了して。
Debugビルドのopencv_python3だけが以下エラーになるはず。

LINK : fatal error LNK1104: ファイル 'python35_d.lib' を開くことができません。

まぁAnacondaにDebug版のlib付いてないし、ビルドするのも面倒なので今回は放置。
Pythonからデバッグしない分には良いし。

5. 参考

インストール時に参考にした記事等へのリンク

OpenCV3.2とcontribをWin10に導入してビルドしてサンプル実行。
Visual Studio 2015によるOpenCV3.2のコンパイル
openCVで犬猫判別をする前の準備

6.総括

はじめはAnaconda3 4.3.1に仮想環境でPython3.5環境作ってそこに入れようとしましたが、そこが嵌りポイントでした。
インストール時に設定されるシステムのPythonを任意に変更できればそれでも行ける気がしますが、とりあえず先の作業をしたいので調べる予定は無しですかね。
当分は3.5環境だと思いますし。

7.その後(2017/5月現在)

OpenAI gymの拡張分(atariとか)がWindows Nativeでは入らないので、Bash on Ubuntu on Windowsとか試したのですが、現状ではB on U on W上ではGPUが使えないということで、結局Ubuntu16.04とのデュアルブートにしたというオチです。
今はやってる機械学習系はチュートリアルの入ぐらいを除けば基本GPU無いと辛いですからね・・・。
現在のオープンソース環境では最新パーツのドライバ除けば、Linuxの方が対応早いし問題少ないしで良かったという・・・。
まぁそれでもWindowsで使えないの?って言う人いるから役には立つさね、きっと。


1 Star2 Stars3 Stars4 Stars5 Stars (まだ評価されていません)
Loading...
      この投稿は審査処理中  | 元のサイトへ