18
31

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

Windows機を機械学習出来る様にする

Last updated at Posted at 2021-07-14

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ダウンロードページより使用バージョンをダウンロードする。

スクリーンショット (304).png

赤枠部を選択するとダウンロードが開始されます。

ダウンロード完了したらファイルを開いてインストーラーを起動する。

インストーラーを起動したらInstall NowをクリックすればOKだが
Windows側のシステム変数(環境変数)の設定が必要なのでこの時点で
Add Python ○○ to PATHにチェックを入れてからインストールを行うと
自動的にPATHが設定されるのでチェックを忘れない事

スクリーンショット (305).png

後は表示に沿って実行していけばOK

インストール後、Windowsコマンドプロンプトにてpython -Vと入力するとpythonが起動する。

スクリーンショット (306).png

ちなみにコマンドプロンプトだが検索メニューバーにcmdと入力すると出てくるので
覚えておくといい事があるはず。

②CUDA Toolkitインストール

Tensorflowについては1.14or1.15を使用する前提なので必然的に使用するcudaとcuDNNのバージョンは決まる。

以下は対応表のリンクです。

Tensorflow GPU対応表(公式サイト)

スクリーンショット (308).png

現時点でRTX30シリーズ搭載機については最新のCUDA及びcuDNNをセットアップすれば
Tensorflow2.4系を使用出来るがTensorflow1系に関してはまだ未対応っぽいのと
RaspberryPiを使用するのであればTensorflow1系をおそらく扱うのでここでは1系です。

機械学習においてはCPUよりGPUを用いた方が演算速度が速いので使用出来る様にする為
NvidiaさんよりCUDA Toolkitをダウンロードする

尚、今回使用するGTX1650についてのスペックが気になるのであればこちらへ
まぁ最新のRTX30シリーズに比べればCUDAコア数もメモリ数も全然違うので何とも言えないが
このスペックでも簡単な物ならそれなりに回せるのでOKと思います
(画像とか扱うなら本体メモリ容量に依存する部分が大きいけど…)

CUDA Toolkit 10.0

スクリーンショット (309).png

OperatingSystemから順番に選択していくとDownloadが出現するのでクリックすればOK

ダウンロードしたファイルと開くとCUDA Setup Packageが立ち上がるので順次選択していけば大丈夫

STEP.1

インストールフォルダの設定
デフォルトでOK
スクリーンショット (1).png

STEP.2

『同意して続行する』をクリック
スクリーンショット (4).png

STEP.3

『推奨』を選択して、『次へ』をクリック
カスタムで必要データを選択出来るのであればカスタムでも問題ないと思いますが
私は分かりません
スクリーンショット (5).png

STEP.4

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

STEP.5

『次へ』をクリック
スクリーンショット (8).png

STEP.6

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

ちなみにインストールされたものはこちら
スクリーンショット (10).png

この場所に関しては後々cuDNNのセットアップで必要です。

これでインストールは完了! …って訳でなく、ユーザー環境変数への追加が必要となります。

③CUDA環境変数追加

これを設定しておかないとTensorflow使えませんのでご注意下さい。(GPUが使えない)

STEP.1

『スタートメニュー』から『設定』を選択
スクリーンショット (11).png

STEP.2

『システム』を選択する
スクリーンショット (12).png

STEP.3

『詳細情報』を選択する
スクリーンショット (13).png

STEP.4

『システムの詳細設定』を選択する
スクリーンショット (14).png

STEP.5

『環境変数』を選択する
スクリーンショット (15).png

STEP.6

システム環境変数にCUDAPATHが自動設定されているか確認する。
C:¥Program Files¥NVIDIA GPU Computing Toolkit¥CUDA¥v10.0と設定されている
スクリーンショット (16).png

STEP.7

ユーザー環境変数の『Path』を選択した状態で、『編集』を選択する
スクリーンショット (21).png

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
スクリーンショット (22).png

設定が終わったら一旦Windowsを再起動しておく

STEP.9

コマンドプロンプトにwhere nvccと入力し。Pathが通っている事を確認する。
スクリーンショット (24).png

C:¥Program Files¥NVIDIA GPU Computing Toolkit¥CUDA¥v10.0¥bin¥nvcc.exeと表示されればOK

ここまでがCUDAのセットアップとなります。

④cuDNNのダウンロード

次にcuDNNのダウンロードを行う
ステップの道中にNVIDIAへのログインを求められるので
先にNVIDIA DEVELOPERのアカウントを作成しておくことをお勧めします。

NVIDIA DEVELOPER

スクリーンショット (313).png
赤枠の『ACCOUNT』から設定していきます。
詳細については割愛しますが、Gmail等のアカウントで登録出来ます。

STEP.1

cuDNN7.4.5ダウンロードページ

対応しているcuDNNのバージョンを選択し、その中の『cuDNN Library for Windows 10』を選択する。
スクリーンショット (311).png

STEP.2

ログインを求められるのでNVIDIA DEVELOPERにログインを行う。
スクリーンショット (25).png

STEP.3

対応ファイルを選択し、ダウンロードを行う
クリックすればダウンロードされます。
スクリーンショット (27).png

⑤cuDNNのセットアップ

CUDAと同様のこちらも環境変数への設定追加が必要となります。

STEP.1

ダウンロードされたファイルはダウンロードフォルダにあるが
zipの解凍をやり易くする為、新規でフォルダを作成する。
場所としてはCドライブ直下にToolsという名前のフォルダを作成。
そこにダウンロードしたcuDNNのzipファイルを移動して、そこで解凍を行う。

スクリーンショット (19).png

STEP.2

解凍したcuDNN内のデータをCUDA側の対応ファイル内のコピーして放り込む
(下図左がcuDNN、右がCUDA)

スクリーンショット (31).png

ZIPファイルがあれば復元可能なので
cuDNN:binCUDA:bin
cuDNN:includeCUDA:include
cuDNN:libCUDA:lib
にそのまま移動した方が分かりやすいかも(テキストファイルも移動するのを忘れずに)

STEP.3

環境変数変数を追加する。
今回はシステム環境変数
変数名は分かりやすい様にCUDNN_PATH(命名は自由)
変数値(ファイルの場所)はC:¥Program Files¥NVIDIA Computing Toolkit¥CUDA¥v10.0
直接入力でなくても『ディレクトリの参照』からでも選択可能(むしろこっちの方が分かりやすかったです。)

スクリーンショット (32).png

STEP.4

cuDNNのパスが通るかを確認する。
コマンドプロンプトにwhere cudnn64_7.dllと入力する。

スクリーンショット (33).png

問題がなければパスが通る。

以上がcuDNNセットアップです。

⑥Visual Studio 2015、2017 および 2019の再頒布プログラムのセットアップ

いざTensorflowを使用しようとするとエラー吐くはず(吐かれた)
動かすためにVisual Studio 2015、2017 および 2019の再頒布プログラムが必要

Microsoft サポート

上記から必要ファイルをダウンロード&インストールする

スクリーンショット (35).png

赤枠クリックで.exeファイルがダウンロードされるので、終わったらクリックしてインストールする。

スクリーンショット (36).png

これでOKです。

⑦Visual Studio Codeのセットアップ

こちらについては必須ではありませんがコーディングするのに便利なので入れてます。

Visual Studio Code
スクリーンショット (314).png

『Download for Windows』をクリックすればダウンロードが開始されます。

ダウンロードされた.exeファイルを開くとインストーラーが立ち上がるので手順通りに進めていく。

STEP.1

使用許諾に同意して『次へ』を選択する
スクリーンショット (39).png

STEP.2

インストール先を指定して『次へ』を選択する
(デフォルトでなんら問題ないかと思います)
スクリーンショット (40).png

STEP.3

スタートメニューフォルダの指定をして『次へ』を選択する
(デフォルトから変更した事ないです。)
スクリーンショット (41).png

STEP.4

設定に問題がなければ『インストール』を選択する
スクリーンショット (42).png

これで使用可能になります。

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のチュートリアルを実施

スクリーンショット (43).png

設定が問題なければ動きます。
エラーを吐いたら設定がどこかで間違っていると思われるので
Google教授の力を借りて調べていくのみです。

ちなみに

from tensorflow.python.client import device_lib
device_lib.list_local_devices()

と入力して実行すると、認識しているGPUが表示されます。

まとめ

これで最低限使用可能な状態になっていると思います。
ここから使用したいモジュール等をインストールしていけばよいと思います。
最近は仮想環境を作って環境別に分ける様にしていますが
AnacondaNavigatorの商用利用が有償化しているのでVENVにて仮想環境を構築する様にしています。
そちらに関してはこちらにまとめています。

18
31
0

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
18
31

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?