O slideshow foi denunciado.
Seu SlideShare está sendo baixado. ×

最近思った機械学習(PyTorch)のベストプラクティス

Anúncio
Anúncio
Anúncio
Anúncio
Anúncio
Anúncio
Anúncio
Anúncio
Anúncio
Anúncio
Anúncio
Anúncio
Carregando em…3
×

Confira estes a seguir

1 de 16 Anúncio

Mais Conteúdo rRelacionado

Diapositivos para si (20)

Semelhante a 最近思った機械学習(PyTorch)のベストプラクティス (20)

Anúncio

Mais recentes (20)

最近思った機械学習(PyTorch)のベストプラクティス

  1. 1. 最近思った機械学習(PyTorch) のベストプラクティス 1 2019年11月13日 みんなのPython勉強会 #51 Masato Fujitake(@Swall0wTech)
  2. 2. 自己紹介 2 名前: つばめ (Masato FUJITAKE) Twitter : @Swall0wTech 専攻:Computer Vision(元ロボティクス 言語:c言語、C++,アセンブリ… Python:画像処理、機械学習等
  3. 3. 深層学習を始めて早4,5年... プロトタイプの作成に楽なPyTorchに行き着 いた... 3
  4. 4. PyTorchとは ・Python向けのオープンソース機械学習ライブラリ (Tensorflowとの2大巨頭フレームワークの1つ) ・FacebookのAI研究チームと大学が開発 ・研究領域から開発されているので,最新の論文の実装が多く公開されている. 4
  5. 5. リポジトリの数がだいぶ多くなった https://paperswithcode.com/trends 5
  6. 6. 深層学習研究の課題 •モデル以外の実装が多く大変 •訓練ループ •評価 •ロギング •実験管理が大変 •何のパラメータ変更した時の結果なのか •実験変更時の比較 6 PyTorch lightning Comet.ml
  7. 7. 実装の簡素化(PyTorch-lightning) PyTorchでの開発スピードを爆速にしてくれる! 7 青いところの領域だけを 実装すれば,後はよしな にやってくれる! • データセットアップ • モデル • サンプリング • 1バッチあたりの訓練 • 1バッチあたりの評価 • 評価終わりの処理
  8. 8. シンプル例 class CoolSystem(pl.LightningModule): def __init__(self): super(CoolSystem, self).__init__() # not the best model... self.l1 = torch.nn.Linear(28 * 28, 10) def forward(self,x): return torch.relu(self.l1(x.view(x.size(0),-1))) def training_step(self,batch,batch_nb): # REQUIRED x, y = batch y_hat = self.forward(x) loss =F.cross_entropy(y_hat, y) tensorboard_logs = {'train_loss':loss} return {'loss':loss,'log':tensorboard_logs} @pl.data_loader def train_dataloader(self): # REQUIRED return DataLoader( MNIST(os.getcwd(), train=True, download=True, transform=transforms.ToTensor()), batch_size=32) 8 from pytorch_lightning import Trainer model = CoolSystem() # most basic trainer, uses good defaults trainer = Trainer() trainer.fit(model)
  9. 9. ロギングとかも勝手にやってくれる 9
  10. 10. おすすめ機能 •Trainerにあるデバッグ機能 •Train, Val, Testを1バッチのみ ループしてくれる •16bit Mixed-precisionで高速化 10 # DEFAULT trainer = Trainer(fast_dev_run=True)
  11. 11. 実験管理を楽に 実験では1つづつ要素を変えて, 何が影響するのかを確認する. →変更ごとに実験管理が必要 11 以前はネ申エクエルで管理していた!!
  12. 12. 今はComet.mlにお世話に 機械学習のGithub化 12
  13. 13. 何ができるのか •差分が取れる •自動でロギングされる 13
  14. 14. 2つの実験の比較 14
  15. 15. 使い方 既存のコードに数行付け足すだけ 15
  16. 16. まとめ 深層学習開発での課題 →ツールに頼りましょう! •モデル以外の実装が大変 •PyTorch-lightning •実験管理が大変 •Comet.ml •似たようなものにmlflowもある 16

×