Microsoftの『PyTorchの基礎』でPyTorchを勉強してみる(1)
以下の記事を見て、今まで全く触ったことのない、機械学習用ライブラリ『PyTorch』を触ってみたくなったので、MicrosoftのPyTorch Fundamentalsのページで勉強してみたいと思います。
環境構築不要で、4時間13分で機械学習モデルの構築方法や自然言語処理、音声認識の概要などを学べる
そうです!英語だけど!
4章あるそうです。
- Introduction to PyTorch
- Introduction to Computer Vision with PyTorch
- Introduction to Natural Language Processing with PyTorch
- Introduction to Audio Classification with PyTorch
まずは、Introduction to PyTorchからやっていきます。
- 1. これをやる前に私が読んだ本
- 2. 開発環境
- 3. Microsoftのページにhotmailアカウントでログイン
- 4. サンドボックスをアクティブ化して、Jupyterのコードを実行しながら進めていく
- 5. セルの実行ボタンをクリックしながら、Jupyterを読み進める感じ
- 6. Load data with PyTorch Datasets and DataLoaders
- 7. Transform the data
- 8. Building the model layers
- 9. Automatic differentiation
- 10. Learn about the optimization loop
- 11. Save, load, and run model predictions
- 12. The full model building process
- 13. Summary
- 14. 参考リンク
これをやる前に私が読んだ本
前提知識ゼロで英語でやるのはちょっとつらいかもしれません。もちろんやってもいとは思います。つらいなと思ったら、以下の本がお勧めです。
図解速習DEEP LEARNING(2019年)
ゼロから作るディープラーニングシリーズ(全3巻、2016年)
たしか、2017年頃、ゼロから作るディープラーニングを写経しながら読んで、機械学習の概要と最低限必要なpythonについて知ることができた気がします。2019年以降はほとんどpythonや機械学習は触っていませんでした。
開発環境
Windows10
Chrome
Microsoftのページにhotmailアカウントでログイン
https://docs.microsoft.com/ja-jp/learn/paths/pytorch-fundamentals/ に、Microsoftアカウント(ホットメールのアドレス、なければhttps://signup.live.com/signup から作成)でログインします。
サンドボックスをアクティブ化して、Jupyterのコードを実行しながら進めていく
1日に10回、Sandboxを有効化することができるそうです。1回あたり、2時間のみ使用できるそうです。
セルの中をクリックして、Shift+Enterを押すか、セルの左側の『△』の実行ボタンをクリックすると、セルの中身が実行されます。
なんか最初、10秒かかって、何もおこりませんでした(matplotlibは入れてくれているらしいのですが)。あまり面白くないですが、ちゃっちゃと進めてみたいと思います。
セルの実行ボタンをクリックしながら、Jupyterを読み進める感じ
PyTorchは、今は亡きChainerと似ている雰囲気があります。
pytorchのtensorを操作すると、同時に対応するNumPy arrayも動くようです。不思議、、、
最後に3択問題が出ます。間違ってもたぶん大丈夫です。
私は”10 minutes”でできるよと書いてあったところを、40分かかりました。とほほ。英語ムズイ。
Load data with PyTorch Datasets and DataLoaders
Fasion-MNISTというデータセットを用いるそうです。2018年頃はMNIST(手書き数字)ばっかりだったので、正直つまらなかったのですが、それより面白そうです!
Fasion-MNISTデータセットは、、、日本語に訳していると時間がかかって先に進めないので、英語でそのままがんがん読んでいっちゃいましょう!
Fashion-MNIST is a dataset of Zalando’s article images consisting of of 60,000 training examples and 10,000 test examples. Each example comprises a 28×28 grayscale image and an associated label from one of 10 classes.
https://docs.microsoft.com/ja-jp/learn/modules/intro-machine-learning-pytorch/3-data
28ⅹ28でグレースケールだとなんかレトロな感じがしますが、なんか、Machine Learningしている気分になってきました。matplotlibの使い方を知らないと、ここの理解は難しそうです。私にはよくわかりません。
Transform the data
Data does not always come in its final processed form that is required for training machine learning algorithms. We use transforms to perform some manipulation of the data and make it suitable for training.
だそうですが、この章はよくわかりませんでした。だって、コードを実行しても、見かけ上、何も出力が出てこないし、、、とばしていきましょう。
Building the model layers
Neural Netwokの作成です。
cudaが利用可能なら利用、利用不可能ならCPUを利用、というコードがあるらしいです。個人的にはcudaは持っていませんが、将来、クラウドで利用したいと思ったときに簡単そうでよさそうですね。ちなみに、Google Colaboratoryでもcudaを簡単に使用できるそうです。
nn.Moduleでneural networkをdefineするそうです。
ちなみに、ReLu関数は、以下のような関数だそうです。
このコードは何番目の画像をpredictしているのか私にはわかりません。Softmax関数は、以下のような関数だそうです。
私には、nn.Flattenは何となくイメージはわいたのですが、nn.Linearは何をやっているのかさっぱりわかりません。
Automatic differentiation
コードを実行しても、下に何も表示されないと、なんかさみしいです。
でも、やっと、グラフが出てきました。
predictしたいだけ(trainingしない)ときは、以下のようにするらしい?
Learn about the optimization loop
損失関数(Loss function)
modelの最適化 Optimization
train and test
Save, load, and run model predictions
セルを実行しつつ、ざっと見です。これで一通りintroductionは終わりだそうです。ゼロから始めるディープラーニングを読んでChainerでMNISTを写経したことがあれば、おおまかなことは分かりそうな印象でした。
The full model building process
ここからは、外出先でiPhoneで読んでみました。クラウドって便利ですね。スマホでも十分、読みやすかったです。
trainingを実行するところは、約4分かかりました。無料で1日あたり20時間(2時間x10回)もcudaが利用できるなんて、Microsoft様太っ腹です!
Summary
今回はCNN(convolutional neural networks) workについて学んだそうです。
英語で、わかったようなわからないような感じもしますが、とりあえず、セルの実行ボタンをクリックするだけで、パソコンでも、スマホでもぽんぽん進んで楽しかったです。
続きもやってみたいです!
2021年7月くらいから、スマホでGoogleスライドを使ってパワポファイルを作っていますが、細かいところは難しいですが、画像や文章のコピペくらいなら、ぽんぽんスマホで作れてしまいます。便利な時代になったものです。
参考リンク
https://qiita.com/SolKul/items/f078877acd23bb1ea5b5
@SolKul
が2021年07月19日に更新
VSCodeでのPython、Jupyter実行環境の構築方法
ディスカッション
コメント一覧
まだ、コメントがありません