ブログ
BLOG

技術ブログ

 社長です。最近、自分でも機械学習のコーディングを始めてみました。 実は卒論修論(数十年前?)でニューロ・ファジィ・GAを使った制御の研究をしていたので、前から自分でもやりたいと思っていたんですよね。 また、最近は機械学習のライブラリが後で解説するPyTorchに集結しつつあるようなのも、重い腰を上げるキッカケにもなりました。

 環境整えるまでの手順が多かったので、まずは環境構築手順をまとめてみます。

 こだわりのポイントとしては、普段の仕事の関係上、Windwos上で環境構築を行ったことです。 色々と聞いたりして調べた結果、下記を使用することにしました。

 「PyTorch」は、Facebook社がオープンソースで開発している、python/C++用の機械学習のライブラリです。同社のCaffe2やPFN社のChainer等も吸収し、今最も人気のある機械言語のライブラリと言えると思います。 コアの演算は、torch.Tensorというクラスにまとめられ、GPU(CUDA)を使った演算もNumPyライクに比較的簡単に行えたり、自動微分の機能があるため学習のアルゴリズムをかなり隠ぺいする(書くべきコード量を少なくする)ことができます。

 「Anaconda」は、pythonの仮想環境を複数用意してくれます。pythonは便利ですが、バージョン問題に悩まされ、 python本体やライブラリのバージョンが合わないと、プログラムが動かないなどといったことがよくあります。 Anacondaを使用すると、各仮想環境内にpythonやライブラリをインストールするのでそのような問題を解決できます。例えば、
・普段の開発用はPython 3.8とpytorch1.8.1
・あるオープンソース用にPython 3.6とpytorch1.0
などといった環境をつくって選択することができます。

 「Visual Studio Code」(VS Code)は、マイクロソフト社が公開しているエディタです。様々なプラグインがあり、それらを入れることで様々な言語の開発環境を構築できます。 python用のプラグインもあり、ブレークポイントで止めて中の値をみたり、インタラクティブ実行などもできてデバッグが楽にできます。


 それでは具体的なインストールから、テストプログラムの実行方法を示します。

Visual Studio Codeのインストール

 VS Codeのインストール方法について解説します。インストーラをここからダウンロードしてください。 インストール中に選択肢が出ますがデフォルトで良いと思います。詳しくは他のサイトを確認してください。

 インストール後、VS Codeを立ち上げてください。

 拡張機能(プラグイン)のインストール方法を説明します。 左側の□が並んだアイコンをクリックし、「Marketplace で拡張機能を検索する」欄に「Python」と入力してください。

 WEB上からプラグインが検索され、マイクロソフト製のPythonプラグインが見つかるので、【インストール】ボタンを押してください。

 同様にこれは任意ですが「Japanese Language Pack for Visual Studio Code」と入力しマイクロソフト製の日本語化プラグインを入力してください。 その他お気に入りのプラグインがあれば入れてください。


 以上で操作は完了です。一旦閉じてください。


 今後のpythonを使う操作では直接VS Codeを起動せずに、下記で解説しているようにAnacondaのメニューからVS Codeを起動してください。重要です!!

Anacondaのインストール

 Anacondaのインストール方法について解説します。Anacondaには有料版がありますが、個人で勉強するためなら無料のIndividual版が使えます。

 Individual版のインストーラは、Anacondaのトップページ→Products→Individual Edition のページへ行き、ページの下のほうの「Windows」「64-Bit Graphical Installer」からダウンロードできます。

 インストーラを実行して指示通りに進めば良いですが、注意点があります。

 デフォルトではインストール先がユーザーのディレクトリの下になりますが、とくにフォルダ名に日本語や空白、長すぎるフルパス等があると、この手のソフトは動かなくなることがよくあるので注意しましょう。

 下記の画面はデフォルトで良いかと思います。

 Add Anaconda to the system PATH environment variableは、環境変数にパスが設定するかのチェックですが、非推奨のようです。

 Register Anaconda as the system python 3.8は、ほかにpythonを入れていなければ、チェックを入れたままで良いようです。

 インストールが完了すると、スタートメニューに下記のように配置されます。「Anaconda Navigator」を起動してください。

 最初に行うことは、新しくpythonの仮想環境を作ることです。下図のように、①Environmentを選択し、②Createボタンを押してください。(既に base(root) がありますが、使用せずに新しく作ります)

 Name欄に仮想環境名(ここでは「nn」としました)、PackagesにPythonにチェックを入れて、バージョンを選択(ここでは「3.8」)して、Createボタンを押してください。

 処理中は下図のように右下のメーターが動いています。止まるまで待ってください。

VS Codeでpythonの実行

 Anacondaの操作の続きで、①【Home】を押して、②環境を選択して(ここでは【nn】)、③VS Codeの【Launch】を押してください。 環境を選択するのを忘れないようにしましょう。


  次回以降、VS Codeを起動する場合も、Anaconda起動→【Home】→環境選択→VS Codeの【Launch】の順で起動してください。

 (毎回Anacondaを起動するのがメンドイので、Anacondaのパスを環境変数に設定したり、VS Codeの設定を変更しようとしたりと、色々と考えてググりましたが、どれも上手く行きませんでした。本当に。。私のPCの問題かもしれませんが。)

 起動後、VS Codeの左下に、選択した仮想環境が表示されていること(ここでは'nn':conda)を確認してください。もし選択されていない場合はこの表示部を押すと選択メニューが出るので正しく選択してください。 重要です。


 VS Codeを開いたら、一旦Windowsエクスプローラーで、作業用のフォルダを作成してください。ここではd:\tempとします。


 その後、VS Codeで、【ファイル】→【フォルダを開く】→【先ほどつくった作業用フォルダ】を選択してください。

 いよいよ実行です。①test1.pyというファイルを作って、②下記のようにプログラムを入力し、③三角ボタンを押して、④ターミナルウィンドウが出て、下記のように表示されれば成功です。

 デバッグ実行も可能です。①F5キーを押して、②出てくるメニューでPython Fileを選択すると、デバッグ実行になります。 また、下記の【launch.jsonファイルを作成します】をクリックして、出てくるメニューでPython Fileを選択すると、毎回選択しなくて済むようになります。

 デバッグ実行の場合は、途中でブレークポイントで止めたり、デバッグコンソールウィドウで値を表示したりできます。 ページが長くなってきたので、使い方はググってください。

 次に以下のプログラムを実行してください。numpyが無いとエラーがでますね。

import numpy as np
a = np.array([1, 2, 3])
print(a)

 モジュールが無いときは、まず、google先生に「conda numpy」などと入れてください。 そうすると、https://anaconda.org/anaconda/numpy がヒットします。 下記の部分をコピーして、

 VS Codeのターミナルにペーストして、実行するとインストールされます。

 参考までに、Anacondaの画面からインストールすることもできます(こちらのほうが普通のやり方かも)。【Environment】→【nn】→【Open Terminal】を開いて、先ほどのコマンドをペーストして実行。

 モジュールのインストール方法についてググると色々な情報が出てきますが、この方法が一番確実な気がします。また、Anacondaを使用している場合はpipコマンドを使うのは最後の手段にしたほうが良いようです。知らんけど。

PyTorchのインストール

 PyTorchのモジュールのインストールは先ほどと少し異なります。 PyTorch公式ページにアクセスし、下記のように欲しい環境条件を選択して、コマンドをコピーしてください。 最近のnvidiaのグラボが搭載されていないなら、CPUを選択したほうが良いかもしれません。

 あとは先ほどと同様、VS Codeのターミナル(もしくはAnacondaの仮想環境(この例ではnn)のターミナル)にペーストして実行してください。


 インストール後、下記のプログラムが実行出来れば、pytorchも動作しているのでOKでしょう。

import numpy as np
import torch

n = np.array([1, 2, 3])
a = torch.from_numpy(n.astype(np.float32)).clone()
print(a)

おわりに

 結構長くなってしまいました。Windows10上でPyTorchが動くところまで来ました。

 なにか動かないときは、Anacondaのpython仮想環境の選択がうまく行っていない、直接VS Codeを起動してしまった、などがよくあると思います。 ググると、Anacondaのパスを登録する等と書かれているものもありますが、本手順の通りであれば不要でした。


 PyTorchを使ったニューロのプログラムの解説は次のブログに。

 Pytorchで機械学習2:XOR問題