#導入
自身の研究でニューラルネットを使うことになったから、じゃあPyTorchを使うか(脳死)ってことになった。
人気なのは知ってるし、PFN様が作ってたchainerを開発終了に追い込んだ(この表現はあっているのだろうか...)ことだけは知ってるけど、具体的に使ったことはなかったので、環境を整えて少し使ってみるとこまでを記録に残しておく。
#PyTorchとは
PyTorchとは、Facebookが開発してるPythonのライブラリで、主にニューラルネット(以下NN)向けに作られたものである(私の偏見込み)。GPUを使えるようにすることでNNの計算を手早くできたり、自動微分システムがあったりと、NNのハードルを下げることに一役買ってる便利なツールである。
※もっと違う特徴があるだろって意見もあるかもしれないけど、自分自身に対するざっくりとした説明でもあるので許してください。
#ダウンロードの仕方
筆者の環境
OS:Windows10
Python : Python3.7
Package : Anaconda
IDE : Spyder4.1.4
GPU : オンボードのやつだけ。NVIDIAのはつんでない
まず、pytorchのインストールコマンドを以下のWEBページから取得する。
適切なインストールコマンドを選んでおかないと、ひたすらエラーが出るので注意。
※Qiitaの他の人のページのインストールコマンドをコピペして、そのまま実行してエラーが出て、なんでだ?を繰り返してたバカがこの記事を書いています
選択肢は
1.ビルド (調べたけどよく分からんから他の記事に従って左を選択)
2.OS
3.パッケージ
4.言語
5.CUDA (GPUを使うためのもんらしい)
の5つ。
筆者の環境に従って、以下の画像のようにしました。
一番下のRun this Commandの部分がインストールコマンド。そして、以下の手順でインストール。
①Anaconda promptを右クリックして、その他 → 管理者として実行、で開く
②以下のコマンドを実行
conda install pytorch torchvision cpuonly -c pytorch
これでOK
補足:自宅のデスクトップではうまくいったが、なぜかラップトップではうまくいかくて、下記のエラーが出た。
OSError:[WinError 126] 指定されたモジュールが見つかりません。
エラーメッセージで検索したら、@kunishou0903さんのこのページ(import torchで「OSError:[WinError 126] 指定されたモジュールが見つかりません。」が出た時の対処)にたどり着き、この記事の「旧バージョンのPytorchをインストール」で紹介されている以下のコマンドを実行したところうまくいった。
conda install pytorch==1.5.0 torchvision==0.6.0 -c pytorch
なので、ラップトップのpytorchはバージョンが古いということをお忘れなく。
#簡単な使い方
行列の要素に行番号と列番号で参照したり、平均を計算したり、転置したり、numpyでできることは大体できる。しかも、numpyに変換もできる。GPUを使ってないので、その恩恵をあまり感じられていないが、自動微分は便利だなーって思ったので、それを下に書いておく。
#ライブラリ
import torch
#行列作成
A = torch.tensor([[1,2],[3,4]])
B = torch.tensor([[4,3],[2,1]])
#行列同士の積
torch.mm(A,B)
###tensor([[ 8, 5],[20, 13]])###
#自動微分
x = torch.tensor(3.0, requires_grad = True) #Xを変数にしたい場合はrequires_gradの引数をTrueにする
#最初の4はXに対してある点を与えている。
a = torch.tensor(2.0) #傾き
b = 1.0 #切片
y = a*x + 1 #関数定義
print(y) # x = 3の時の値
###tensor(7., grad_fn=<AddBackward0>)###
y.backward() #requires_grad =Trueになっている変数で微分実行
print(x.grad) #微分した結果
###tensor(2.)###
#引用元
[1]PyTorch
[2](import torchで「OSError:[WinError 126] 指定されたモジュールが見つかりません。」が出た時の対処)
[3]PyTorch環境構築 (Windows10, Anaconda3, Pycharm, Python3) 直接何かを引用したわけじゃないけど、このページも見て参考にしました。
[4]「現場で使える PyTorch 開発入門,社世橋 著」 ← 買った。最高。