TensorFlow2でDeepLearningを学習する ~Windows版をAnacondaでインストール~
2019/11/16 |
|
2018/04/24 |
|
2017/08/03 |
|
人工知能、話題ですね。
碁や将棋でコンピューターが名人を打ち負かしたとか、車が勝手に自分で運転するだとか…すごいです。まさにSFの世界が現実になろうとしています。
私もうまいこと人工知能を作ることができれば
- 私の代わりに仕事をやってもらったり
- 株やFXで稼いでくれたり
- 疲れた時にはやさしい言葉で癒してくれたり
ってことですよね?これは勉強しない訳にはいかないでしょう。
ディープラーニングというのがカギのようですが、どうやらGoogleが開発したTensorFlowなるものを使えば人工知能を作れる?
TensorFlowとは
お約束ですがTensorFlowとは何でしょう?GoogleのTensorFlowのサイトを見てみました。
TensorFlow は、機械学習(ML)の経験にかかわらず誰でも簡単に ML モデルを構築してデプロイできる、エンドツーエンドのプラットフォームです。
前はたしか”an open source software library”と紹介してあったのですが、最近ではプラットフォームに成長したみたいですね。結局何だかよく分かりません…
とりあえずインストールしていきます。Windows版のVersion2をインストールします。
一応公式のドキュメントは以下にありますが、今回はAnacondaのパッケージを使っているので、あまり参考にしてません。
インストール
Python (Anaconda)
TensorFlowをPythonから利用するためまずはPythonをインストールします。私はAnacondaというパッケージを使いました。
これはPythonと、主にデータサイエンスに便利なライブラリをパッケージ化して、配布しているものです。Tensorflowのパッケージもあり、特にGPU版はCUDAやcuDNNといったライブラリも一緒にインストールしてくれるため、とても便利です。
まず、インストーラをダウンロードします。先ほどのページの右上の”Download”をクリック、
表示されたページを下の方にスクロールして、Python3.7を”Download”。
ダウンロードが完了したら、インストーラを起動します。途中、ここにない画面も出てきますが、”I Agree”、”next”で飛ばしていきました。
自分専用にインストールします。
デフォルトのパスにインストールしました。
Pathを自動的に追加してくれるオプションもありますが、”Not recommended”でデフォルトはチェックが入ってません。そのまま進めます。
ここで、そこそこの時間待たされます。
インストールが完了しました。
確認です。スタートメニューにAnacondaが登録されたはずなので、”Anaconda Prompt (Anaconda3)”を起動。
プロンプトが表示されたら、python –versionと打ち込み、Enter。バージョンが表示されたら、オーケーです。
(base) C:\Users\(ユーザー名)>python --version
Python 3.7.4
次にTensorFlow2用のPython環境を作成します。以下のコマンドを入力します。
(base) C:\Users\(ユーザー名)>conda create -n tf2
ここでは”tf2”という環境を作っています。途中”Proceed ([y]/n)?”と聞かれるので、”y”と返事します。
次に作成したTensorFlow用の環境に切り替えてみます。
(base) C:\Users\(ユーザー名)>activate t2
(tf2) C:\Users\(ユーザー名)>
切り替わるとプロンプトが”tf2”に変わります。
TensorFlow
TensorFlowをインストールします。Anaconda向けのパッケージを使用します。
CPU版
(tf2) C:\Users\(ユーザー名)>conda install -c anaconda tensorflow
GPU版
(tf2) C:\Users\(ユーザー名)>conda install -c anaconda tensorflow-gpu
GPU版の方は、これだけでCUDAとcuDNNもインストールしてくれます。めっちゃ便利!
これでインストールは完了です。
動作確認
動作確認です。プロンプトで以下のコマンドを実行します。
(tf2) C:\Users\(ユーザー名)>python -c "import tensorflow as tf;print(tf.reduce_sum(tf.random.normal([1000, 1000])))"
エラーが出なければ、インストールはオーケーです。
ちなみに私の環境では、以下のような結果が表示されました。
CPU版
(tf2-cpu) C:\Users\(ユーザー名)>python -c "import tensorflow as tf;print(tf.reduce_sum(tf.random.normal([1000, 1000])))"
2019-11-17 10:58:16.984215: I tensorflow/core/platform/cpu_feature_guard.cc:145] This TensorFlow binary is optimized with Intel(R) MKL-DNN to use the following CPU instructions in performance critical operations: AVX AVX2
To enable them in non-MKL-DNN operations, rebuild TensorFlow with the appropriate compiler flags.
2019-11-17 10:58:16.992464: I tensorflow/core/common_runtime/process_util.cc:115] Creating new thread pool with default inter op setting: 8. Tune using inter_op_parallelism_threads for best performance.
tf.Tensor(-290.74863, shape=(), dtype=float32)
GPU版
(tf2) C:\Users\(ユーザー名)>python -c "import tensorflow as tf;print(tf.reduce_sum(tf.random.normal([1000, 1000])))"
2019-11-17 10:45:10.595282: I tensorflow/stream_executor/platform/default/dso_loader.cc:44] Successfully opened dynamic library cudart64_100.dll
2019-11-17 10:45:12.283417: I tensorflow/stream_executor/platform/default/dso_loader.cc:44] Successfully opened dynamic library nvcuda.dll
2019-11-17 10:45:12.307801: I tensorflow/core/common_runtime/gpu/gpu_device.cc:1618] Found device 0 with properties:
name: GeForce GTX 1080 major: 6 minor: 1 memoryClockRate(GHz): 1.835
pciBusID: 0000:01:00.0
2019-11-17 10:45:12.314933: I tensorflow/stream_executor/platform/default/dlopen_checker_stub.cc:25] GPU libraries are statically linked, skip dlopen check.
2019-11-17 10:45:12.320715: I tensorflow/core/common_runtime/gpu/gpu_device.cc:1746] Adding visible gpu devices: 0
2019-11-17 10:45:12.323319: I tensorflow/core/platform/cpu_feature_guard.cc:142] Your CPU supports instructions that this TensorFlow binary was not compiled to use: AVX AVX2
2019-11-17 10:45:12.331106: I tensorflow/core/common_runtime/gpu/gpu_device.cc:1618] Found device 0 with properties:
name: GeForce GTX 1080 major: 6 minor: 1 memoryClockRate(GHz): 1.835
pciBusID: 0000:01:00.0
2019-11-17 10:45:12.337004: I tensorflow/stream_executor/platform/default/dlopen_checker_stub.cc:25] GPU libraries are statically linked, skip dlopen check.
2019-11-17 10:45:12.343229: I tensorflow/core/common_runtime/gpu/gpu_device.cc:1746] Adding visible gpu devices: 0
2019-11-17 10:45:12.901242: I tensorflow/core/common_runtime/gpu/gpu_device.cc:1159] Device interconnect StreamExecutor with strength 1 edge matrix:
2019-11-17 10:45:12.905413: I tensorflow/core/common_runtime/gpu/gpu_device.cc:1165] 0
2019-11-17 10:45:12.908252: I tensorflow/core/common_runtime/gpu/gpu_device.cc:1178] 0: N
2019-11-17 10:45:12.912896: I tensorflow/core/common_runtime/gpu/gpu_device.cc:1304] Created TensorFlow device (/job:localhost/replica:0/task:0/device:GPU:0 with 6354 MB memory) -> physical GPU (device: 0, name: GeForce GTX 1080, pci bus id: 0000:01:00.0, compute capability: 6.1)
tf.Tensor(-299.0041, shape=(), dtype=float32)