しんさんのブログ

科学や技術のこと読書のことなど

Tensorflow2.0 CPU/GPU版 + Keras + OpenCV ver3.0の環境構築

2019年10月 更新

  • インストール環境

- Windows64Pro
- Nvidia Geforce2080Ti

Anacondaでよく使うコマンドは以下のサイトが便利です.
qiita.com

                          • -

Windows: tensorflow CPU版

1) anaconda の仮想環境の作成
まずは、pipのアップデート
python -m pip install --upgrade pip
そして、anacondaの仮想環境の作成
conda create -n tensorflowCPU200 python=3.5 anaconda
pythonのバージョンを3.5にしたのは、OpneCVを動かすため(追記にあるようにpython: ver.3.6.*でも動くかもしれません)

2) tensorflow2.0.0のインストール
> pip install tensorflow==2.0.0

> python -m pip install --upgrade pip
をやってpipもアップグレードした

これでようやくtensorflow2.0 CPU版のインストールが成功した。
> python
>> import tensorflow as tf
で正常にtensorflowがimportできるか確認した。
次のようにすれば、実際にtensorflowのバージョンを確認できます。
print(tf.__version__)
>>> print(tf.__version__)
2.0.0
となれば成功.

conda-build関連のwarningが出ることがあるが、放置したほうがいい。下手にconda-buildを
インストールするとcondaのバージョンが古いというエラーではまるので注意。

その他必要なモジュールをインストール。例えば以下のようなモジュール。
> conda install -c menpo opencv3
> conda install h5py
> conda install matplotlib
> conda install scikit-learn
> conda install pillow
> conda install pydot -> pydotは開発がおわっているらしい
pydotの代わりにpydotpluをインストール
> conda install pydotplus
> conda install seaborn


Windows: tensorflow GPU
1) anaconda の仮想環境の作成
conda create -n tensorflowGPU200 python=3.5 anaconda
>[WinError 193] %1 は有効な Win32 アプリケーションではありません。
というエラーがでてコマンドラインからは仮想環境が作れないときは、anaconda navigatorから作成する。

2) Nvidia GPUドライバーをアップデートする
ドライバーのバージョンは26.21.14.3160(NVIDIA 431.60)/Win10.64です.

3)CUDAとcuDNNのアップデート
現在のCUDAのバージョンがCUDA 9.xなので10.0にアップデートする必要がある。
(tensorflow 2.0 のインストールドキュメントにはCUDA10.0と書いてあるので、10.1はインストールしないように注意)

https://developer.nvidia.com/cuda-toolkit-archive
からCUDA 10.0をダウンロードしてインストール

nvcc -V
で見ると
release 10.0, V10.0.130
となり、CUDA10.0であることがわかる。

  • CUDNNのインストール

https://www.tensorflow.org/install/gpu
上記ページを改めてよく読むと、
cuDNN SDK (>= 7.4.1)
と書いてあるのでインストールする。
CUDA10.0に対応するバージョンを選ぶこと。
今回は、
cuDNN v7.6.3 (August 23, 2019), for CUDA 10.0
を選択しました。

4) tensorflow2.0.0 GPU版のインストール
> pip install tensorflow-gpu==2.0.0

後の作業はCPU版と同じです.
Ubuntuでもほぼ同じプロセスでCUP版,GPU版の構築が可能でした。

                                                          • -

おまけ:
仮想環境は新たにつくらず、tensorflowのバージョンのみアップデート
CPU版:
pip install -U tensorflow==2.0.0

                                                          • -

(2019/5/10追記)
Ubuntuで上記と同じようにしてpython+openCV環境を構築すると、WindowsではOKだった、
>cv2.namedWindow() 
を使用して新しいwindowを開こうとするとエラーになりました。openCVのビルド時にgtkがONになっていないためのようです。
以下の手順でpython+openCV環境を構築するとうまく動きました。
>conda create -n tensorflowCPUKerasOpenCV3 anaconda
>conda activate tensorflowCPUKerasOpenCV3
>conda install -c menpo opencv3
>conda install keras
これで、
python: ver.3.6.8
opencv: 3.1.0
tensorflow: 1.13.1
keras 2.2.4
がセットアップできます。

ひょっとしたら以下のライブラリのインストールも必要かもしれません。
GUI操作のためのGTKライブラリ:
sudo apt-get install libgtk-3-dev

JPEG, PNG, TIFFなどの画像処理に対応するためのライブラリ:
sudo apt-get install libjpeg-dev libpng-dev libtiff-dev

ムービー処理に対応するためのライブラリ:
sudo apt-get install libavcodec-dev libavformat-dev libswscale-dev libv4l-dev
sudo apt-get install libxvidcore-dev libx264-dev

様々なOpenCVの関数を最適化するためのライブラリ:
sudo apt-get install libatlas-base-dev gfortran

デベロッパーツールのインストール:
sudo apt-get install build-essential cmake unzip pkg-config

上記は以下のサイトを参考にしました。
avinton.com


(参考)
OSError: Unable to open file (unable to open file: name =
というエラーが出るとき、
C:\Users\username\.keras\datasets に残っている以前ダウンロードしたデータをいったん消去すれば解決することがあるようです

proxyの設定は、
C:\Users\username\.condarc

proxy_servers:
http: http://proxyservername:portNum
https: https://proxyservername:portNum
を追加し、Windows環境変数
HTTP_PROXY = http://proxy-server:portNum
HTTPS_PROXY = https://proxy-server:portNum
を追加すればいいです。