スポンサーリンク

Microsoftの『PyTorchの基礎』でPyTorchを勉強してみる(1)

以下の記事を見て、今まで全く触ったことのない、機械学習用ライブラリ『PyTorch』を触ってみたくなったので、MicrosoftのPyTorch Fundamentalsのページで勉強してみたいと思います。

https://www.itmedia.co.jp/news/articles/2107/21/news128.html

環境構築不要で、4時間13分で機械学習モデルの構築方法や自然言語処理、音声認識の概要などを学べる

そうです!英語だけど!

4章あるそうです。

  1. Introduction to PyTorch
  2. Introduction to Computer Vision with PyTorch
  3. Introduction to Natural Language Processing with PyTorch
  4. Introduction to Audio Classification with PyTorch

まずは、Introduction to PyTorchからやっていきます。

スポンサードリンク

これをやる前に私が読んだ本

前提知識ゼロで英語でやるのはちょっとつらいかもしれません。もちろんやってもいとは思います。つらいなと思ったら、以下の本がお勧めです。

図解速習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関数は、以下のような関数だそうです。

https://qiita.com/namitop/items/d3d5091c7d0ab669195f#relu%E9%96%A2%E6%95%B0

このコードは何番目の画像をpredictしているのか私にはわかりません。Softmax関数は、以下のような関数だそうです。

http://deepokayama.kenkyuukai.jp/FilePreview_Subject.asp?id=6414&sid=2063&cid=352&ref=%2Fsubject%2Fsubject%5Flist%2Easp
http://deepokayama.kenkyuukai.jp/FilePreview_Subject.asp?id=6414&sid=2063&cid=352&ref=%2Fsubject%2Fsubject%5Flist%2Easp
http://deepokayama.kenkyuukai.jp/FilePreview_Subject.asp?id=6414&sid=2063&cid=352&ref=%2Fsubject%2Fsubject%5Flist%2Easp

私には、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実行環境の構築方法

スポンサーリンク

AI, PyTorch

Posted by twosquirrel