GitHub(https://github.com/onolab-tmu/pytorch-introduction)
スライド(https://gitpitch.com/onolab-tmu/pytorch-introduction)
Yuma Kinoshita
+++
- この勉強会について
- Gitのインストール
- Python3のインストール
- Pythonの仮想環境作成(任意)
- PyTorchのインストール
+++
- 深層学習フレームワークPyTorchに触れる - 現在はPyTorchかTensorflow2の二択 - 画像処理分野ではPyTorch実装が多く存在+++
- wikipediaによれば…
プログラムのソースコードなどの変更履歴を 記録・追跡するための分散型バージョン管理システム
- 変更をタイムマシンのように巻き戻せる
- 複数人での共有が簡単
+++
-
Windows
-
Mac
$ brew install git
-
Ubuntu
$ sudo apt install git
-
インストールできたことを確認
$ git --version
- Windowsの場合はGit Bashを起動
+++
-
無料で使えるGitサーバ
-
ここからアカウントを作成
- 全世界に公開されるので個人情報には注意
-
アカウントができたら Ono Lab @ TMUに参加
+++
- バージョン管理を行う基本単位
- onolab-tmu/pytorch-introductionというリポジトリで, この勉強会用のファイルのバージョン管理を行っている
+++
- Git bash,または端末を開く
- 勉強会のファイルを置きたいディレクトリに移動
$ cd ファイルを置きたいディレクトリ
- githubからリポジトリをクローン
$ git clone https://github.com/onolab-tmu/pytorch-introduction
+++
- Windows
- 公式ページ のインストーラーを実行
- C:\usr\local\bin\Python3x と
C:\usr\local\bin\Python3x\Scripts をPATHに追加
- Mac
$ brew install python3
- Ubuntu
$ sudo apt install python3
+++
- Python開発ではプロジェクトごとに
仮想環境を作ることが一般的- パッケージの管理が簡単
- 共有のサーバで人の環境を壊す or 壊される心配がない
- Python 3.4以降であれば, 仮想環境を作成するvirtualenvが公式に含まれているのでそれを使う
+++
- プロジェクトのディレクトリへ移動
(gitからcloneしたpytorch-introductionの下)
$ cd hogehoge/pytorch-introduction/
- virtualenvを使ってpython 3.6の環境を作る
$ python3 -m venv venv
venvというフォルダが作成されれば成功
+++
- 有効化
- Windows
$ .\venv\Scripts\activate
- Mac, Ubuntu
$ source venv/bin/activate
- 仮想環境が有効化されると,
ターミナル左に(venv)と表示される
- Windows
- 無効化
$ deactivate
+++
+++
- vscode - いまの流行り - こだわりがなければこれを入れておけば大丈夫+++
- soxのインストール
- Ubuntu
sudo apt install sox libsox-dev libsox-fmt-all
- OSX
brew install sox
- Ubuntu
+++
- Get Startedから自分の環境を選択
- Run this Command 欄に表示されたコマンドを実行
- torch (PyTorch本体), torchvision (画像処理用パッケージ) がインストールされる
- 仮想環境を作っている人は仮想環境を有効にしてから
- torchaudio (音響処理用パッケージ) のインストール
$ pip install torchaudio
- その他パッケージのインストール
$ pip install matplotlib torchsummary
+++
- 微分可能な関数の合成関数
- パラメータ(重み・バイアス)を調整することで
任意の関数を任意の精度で近似できる
- 幅が無限,あるいは,深さが無限のとき
- 2クラス分類問題を実際に解いてみる
+++
- 車内と家で録音された音声データを2クラス分類
- すべてのデータは以下のように統一されている
- 長さ30秒
- サンプリング周波数 44.1kHz
+++
```
$ cd ./src
$ python train.py
```
+++
```
$ cd ./src
$ python test.py
```
+++
- Datasetクラス
- 与えられたインデックスに対応するデータとラベルを読み込む
- AudioFolderクラスの親クラス
- DataLoaderクラス
- 学習のためのミニバッチを自動で作ってくれる
- transform
- 前処理を行う
+++
- nn.Moduleクラス
- DNNモデルやレイヤのクラス
- forwardメソッドに順伝搬時のフローを記述
- nn.Sequenceクラスを使うとforwardの記述が簡単になる
- summary()
- DNNモデルの構成を表示してくれる
- 非公式
+++
- criterion
- 損失関数
- optimizer
- 最適化アルゴリズム
- scheduler
- 学習の途中で学習率を変更してくれる
- 必須テクニック
+++
- 学習データを用意
- Datasetクラスを修正
- transformを修正
- nn.Moduleクラスを修正
- criterionを適切に選ぶ