Windows10搭載機でPythonによるコーディング及び機械学習を出来る環境作りのメモ
最近セットアップが多いんで先人の知見まとめ
(色々なサイトを確認するのが億劫になってきたので…)
本当にありがとうございます。
作業環境
OS:Windows10 home 64bit版
バージョン:20H2
使用マシン(ノートPC)
CPU:Intel Core-i7-10750H
GPU:GTX1650 4GB
メモリ: 16GB(8GBx2)
環境構築について
環境としてはPythonをメインにする。
今回は新規PCで1からのセットアップ
①Pythonのインストール
使うPythonは3.7.9
Python3.7.9ダウンロードページより使用バージョンをダウンロードする。
赤枠部を選択するとダウンロードが開始されます。
ダウンロード完了したらファイルを開いてインストーラーを起動する。
インストーラーを起動したらInstall NowをクリックすればOKだが
Windows側のシステム変数(環境変数)の設定が必要なのでこの時点で
Add Python ○○ to PATHにチェックを入れてからインストールを行うと
自動的にPATHが設定されるのでチェックを忘れない事
後は表示に沿って実行していけばOK
インストール後、Windowsコマンドプロンプトにてpython -Vと入力するとpythonが起動する。
ちなみにコマンドプロンプトだが検索メニューバーにcmdと入力すると出てくるので
覚えておくといい事があるはず。
②CUDA Toolkitインストール
Tensorflowについては1.14or1.15を使用する前提なので必然的に使用するcudaとcuDNNのバージョンは決まる。
以下は対応表のリンクです。
Tensorflow GPU対応表(公式サイト)
現時点でRTX30シリーズ搭載機については最新のCUDA及びcuDNNをセットアップすれば
Tensorflow2.4系を使用出来るがTensorflow1系に関してはまだ未対応っぽいのと
RaspberryPiを使用するのであればTensorflow1系をおそらく扱うのでここでは1系です。
機械学習においてはCPUよりGPUを用いた方が演算速度が速いので使用出来る様にする為
NvidiaさんよりCUDA Toolkitをダウンロードする
尚、今回使用するGTX1650についてのスペックが気になるのであればこちらへ
まぁ最新のRTX30シリーズに比べればCUDAコア数もメモリ数も全然違うので何とも言えないが
このスペックでも簡単な物ならそれなりに回せるのでOKと思います
(画像とか扱うなら本体メモリ容量に依存する部分が大きいけど…)
OperatingSystemから順番に選択していくとDownloadが出現するのでクリックすればOK
ダウンロードしたファイルと開くとCUDA Setup Packageが立ち上がるので順次選択していけば大丈夫
STEP.1
STEP.2
STEP.3
『推奨』を選択して、『次へ』をクリック
カスタムで必要データを選択出来るのであればカスタムでも問題ないと思いますが
私は分かりません

STEP.4
『I understand, and wish to continue the installation regardless』にチェックを入れて、『NEXT』をクリック
要は『インストールしてもいいよね?理解しているよね?』って事(google先生談)

STEP.5
STEP.6
『閉じる』をクリック
サンプルとかが必要であれば各項目にチェックを入れてから『閉じる』をクリックすればOK
あっても特に変わらなかったのでなくてもよいと思っています。
多分、CUDAプログラミング関係だと思う

この場所に関しては後々cuDNNのセットアップで必要です。
これでインストールは完了! …って訳でなく、ユーザー環境変数への追加が必要となります。
③CUDA環境変数追加
これを設定しておかないとTensorflow使えませんのでご注意下さい。(GPUが使えない)
STEP.1
STEP.2
STEP.3
STEP.4
STEP.5
STEP.6
システム環境変数にCUDAPATHが自動設定されているか確認する。
C:¥Program Files¥NVIDIA GPU Computing Toolkit¥CUDA¥v10.0と設定されている

STEP.7
ユーザー環境変数の『Path』を選択した状態で、『編集』を選択する

STEP.8
新規で以下の2つを追加する。
C:¥Program Files¥NVIDIA GPU Computing Toolkit¥CUDA¥v10.0¥bin
C:¥Program Files¥NVIDIA GPU Computing Toolkit¥CUDA¥v10.0¥libnvvp

設定が終わったら一旦Windowsを再起動しておく
STEP.9
コマンドプロンプトにwhere nvccと入力し。Pathが通っている事を確認する。

C:¥Program Files¥NVIDIA GPU Computing Toolkit¥CUDA¥v10.0¥bin¥nvcc.exeと表示されればOK
ここまでがCUDAのセットアップとなります。
④cuDNNのダウンロード
次にcuDNNのダウンロードを行う
ステップの道中にNVIDIAへのログインを求められるので
先にNVIDIA DEVELOPERのアカウントを作成しておくことをお勧めします。

赤枠の『ACCOUNT』から設定していきます。
詳細については割愛しますが、Gmail等のアカウントで登録出来ます。
STEP.1
対応しているcuDNNのバージョンを選択し、その中の『cuDNN Library for Windows 10』を選択する。

STEP.2
ログインを求められるのでNVIDIA DEVELOPERにログインを行う。

STEP.3
対応ファイルを選択し、ダウンロードを行う
クリックすればダウンロードされます。

⑤cuDNNのセットアップ
CUDAと同様のこちらも環境変数への設定追加が必要となります。
STEP.1
ダウンロードされたファイルはダウンロードフォルダにあるが
zipの解凍をやり易くする為、新規でフォルダを作成する。
場所としてはCドライブ直下にToolsという名前のフォルダを作成。
そこにダウンロードしたcuDNNのzipファイルを移動して、そこで解凍を行う。
STEP.2
解凍したcuDNN内のデータをCUDA側の対応ファイル内のコピーして放り込む
(下図左がcuDNN、右がCUDA)
ZIPファイルがあれば復元可能なので
cuDNN:bin ⇒ CUDA:bin
cuDNN:include ⇒ CUDA:include
cuDNN:lib ⇒ CUDA:lib
にそのまま移動した方が分かりやすいかも(テキストファイルも移動するのを忘れずに)
STEP.3
環境変数変数を追加する。
今回はシステム環境変数
変数名は分かりやすい様にCUDNN_PATH(命名は自由)
変数値(ファイルの場所)はC:¥Program Files¥NVIDIA Computing Toolkit¥CUDA¥v10.0
直接入力でなくても『ディレクトリの参照』からでも選択可能(むしろこっちの方が分かりやすかったです。)
STEP.4
cuDNNのパスが通るかを確認する。
コマンドプロンプトにwhere cudnn64_7.dllと入力する。
問題がなければパスが通る。
以上がcuDNNセットアップです。
⑥Visual Studio 2015、2017 および 2019の再頒布プログラムのセットアップ
いざTensorflowを使用しようとするとエラー吐くはず(吐かれた)
動かすためにVisual Studio 2015、2017 および 2019の再頒布プログラムが必要
上記から必要ファイルをダウンロード&インストールする
赤枠クリックで.exeファイルがダウンロードされるので、終わったらクリックしてインストールする。
これでOKです。
⑦Visual Studio Codeのセットアップ
こちらについては必須ではありませんがコーディングするのに便利なので入れてます。
『Download for Windows』をクリックすればダウンロードが開始されます。
ダウンロードされた.exeファイルを開くとインストーラーが立ち上がるので手順通りに進めていく。
STEP.1
STEP.2
インストール先を指定して『次へ』を選択する
(デフォルトでなんら問題ないかと思います)

STEP.3
スタートメニューフォルダの指定をして『次へ』を選択する
(デフォルトから変更した事ないです。)

STEP.4
これで使用可能になります。
Visual Studio Codeの使い方に関してはここでは触れません。
他の詳しい方が色々と情報を開示してくれているのでそちらの方を参照して下さい。
Tensorflowテスト
仮想環境を作成
Tensorflow-gpu == 1.15
keras == 2.2.4
ちなみにGPU使用時はTensorflowはインストールしません。
Tensorflow-GPUでOKです。
仮想環境下でpip install tensorflow-gpu==1.15でインストールされます。
(これが正解かいまだに分かりませんが動くのでOKと思っています…)
VScodeでTensorflowのチュートリアルを実施
設定が問題なければ動きます。
エラーを吐いたら設定がどこかで間違っていると思われるので
Google教授の力を借りて調べていくのみです。
ちなみに
from tensorflow.python.client import device_lib
device_lib.list_local_devices()
と入力して実行すると、認識しているGPUが表示されます。
まとめ
これで最低限使用可能な状態になっていると思います。
ここから使用したいモジュール等をインストールしていけばよいと思います。
最近は仮想環境を作って環境別に分ける様にしていますが
AnacondaNavigatorの商用利用が有償化しているのでVENVにて仮想環境を構築する様にしています。
そちらに関してはこちらにまとめています。























