Skip to content

Latest commit

 

History

History
274 lines (223 loc) · 7.17 KB

PITCHME.md

File metadata and controls

274 lines (223 loc) · 7.17 KB

PyTorch勉強会

GitHub(https://github.com/onolab-tmu/pytorch-introduction)
スライド(https://gitpitch.com/onolab-tmu/pytorch-introduction)
Yuma Kinoshita

+++

はじめに

もくじ

  • この勉強会について
  • Gitのインストール
  • Python3のインストール
  • Pythonの仮想環境作成(任意)
  • PyTorchのインストール

+++

この勉強会について

pytorch logo

- 深層学習フレームワークPyTorchに触れる - 現在はPyTorchかTensorflow2の二択 - 画像処理分野ではPyTorch実装が多く存在

+++

準備:Git

git logo

Gitとは?

  • wikipediaによれば…

    プログラムのソースコードなどの変更履歴を 記録・追跡するための分散型バージョン管理システム

  • 変更をタイムマシンのように巻き戻せる
  • 複数人での共有が簡単

+++

Gitのインストール

  • Windows

  • Mac

    $ brew install git
    
  • Ubuntu

    $ sudo apt install git
    
  • インストールできたことを確認

    $ git --version
    
    • Windowsの場合はGit Bashを起動

+++

GitHubに登録

github logo

Githubとは?

  • 無料で使えるGitサーバ

  • ここからアカウントを作成

    • 全世界に公開されるので個人情報には注意
  • アカウントができたら Ono Lab @ TMUに参加

+++

リポジトリをクローンする

リポジトリとは?

  • バージョン管理を行う基本単位
  • onolab-tmu/pytorch-introductionというリポジトリで, この勉強会用のファイルのバージョン管理を行っている

+++

リポジトリのクローン

  • Git bash,または端末を開く
  • 勉強会のファイルを置きたいディレクトリに移動
    $ cd ファイルを置きたいディレクトリ
    
  • githubからリポジトリをクローン
    $ git clone https://github.com/onolab-tmu/pytorch-introduction
    

+++

Python3のインストール

  • 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が公式に含まれているのでそれを使う

+++

仮想環境の構築

  1. プロジェクトのディレクトリへ移動
    (gitからcloneしたpytorch-introductionの下)
$ cd hogehoge/pytorch-introduction/
  1. virtualenvを使ってpython 3.6の環境を作る
$ python3 -m venv venv

venvというフォルダが作成されれば成功

+++

仮想環境の有効化・無効化

  • 有効化
    • Windows
      $ .\venv\Scripts\activate
      
    • Mac, Ubuntu
      $ source venv/bin/activate
      
    • 仮想環境が有効化されると,
      ターミナル左に(venv)と表示される
  • 無効化
    $ deactivate
    

+++

開発環境を整える

開発環境って?

  • プログラムはテキストファイル(.txtと一緒)

  • テキストエディタがあれば編集できる

  • ただし… シンプルなテキストエディタで
    プログラムを書くのは苦行

    text editor logo

+++

いろいろなテキストエディタ

vscode logo

vim logo

emacs logo

- vscode - いまの流行り - こだわりがなければこれを入れておけば大丈夫

+++

PyTorchのインストール

準備

  • soxのインストール
    • Ubuntu
      sudo apt install sox libsox-dev libsox-fmt-all
      
    • OSX
      brew install sox
      

+++

PyTorchのインストール

  1. Get Startedから自分の環境を選択
  2. Run this Command 欄に表示されたコマンドを実行
    • torch (PyTorch本体), torchvision (画像処理用パッケージ) がインストールされる
    • 仮想環境を作っている人は仮想環境を有効にしてから
  3. torchaudio (音響処理用パッケージ) のインストール
    $ pip install torchaudio
    
  4. その他パッケージのインストール
    $ pip install matplotlib torchsummary
    

+++

Deep neural network

  • 微分可能な関数の合成関数
  • パラメータ(重み・バイアス)を調整することで 任意の関数を任意の精度で近似できる
    • 幅が無限,あるいは,深さが無限のとき
  • 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
    • 学習の途中で学習率を変更してくれる
    • 必須テクニック

+++

自分で使うには

  1. 学習データを用意
  2. Datasetクラスを修正
  3. transformを修正
  4. nn.Moduleクラスを修正
  5. criterionを適切に選ぶ