Slide 1

Slide 1 text

Rustでディープラーニング ユニークビジョン株式会社 山本 一将

Slide 2

Slide 2 text

自己紹介 2 ⚫ 名前:山本 一将(@kyamamoto9120) ⚫ 所属:ユニークビジョン株式会社 ⚫ 言語:C++, Rust, Python, Ruby ⚫ 趣味:将棋、キャンプ、DIY、野球観戦 ⚫ 実績:2015年 世界コンピュータ将棋選手権9位

Slide 3

Slide 3 text

はじめに 3 ① このスライドはconnpassにて公開します ② 実際の利用方法はQiitaに書きました

Slide 4

Slide 4 text

ディープラーニングの背景 4 ⚫ 学習・推論ともにPythonでの例がほとんど • ライブラリ・プラットフォームが充実している • 情報も多く、初学者にも優しい ⚫ 一方、C++は使われるケースがある • TensorFlow Servingのような推論環境 • 囲碁、将棋のようなゲームAI

Slide 5

Slide 5 text

Rustにおけるディープラーニング 5 ⚫ パフォーマンスが要求される場面で使いたい • C++は辛すぎる ⚫ 有名フレームワークのRustバインディングはある! • 情報は皆無 • ドキュメントも乏しい

Slide 6

Slide 6 text

有名フレームワークのRustバインディング 6 TensorFlow PyTorch tensorflow crate tch 公式 提供元 非公式 2.9k Star 942 ○ GPUサポート ○ ○ モデル構築 ○ ○ 学習 ○ ○ Python製モデルで推論 ?

Slide 7

Slide 7 text

それぞれ使ってみた感想 7 ⚫ 環境構築 • CPUでちょっと使ってみるだけならtchが簡単 • 本格的に使う場合は差はない ⚫ モデル構築 • tchはPythonと比較的近いインタフェースで構築可能 • tensorflowは苦行 • 学習をRustでする場合でもモデル構築はPythonで行うべき

Slide 8

Slide 8 text

それぞれ使ってみた感想 8 ⚫ 学習 • tchはデータセットを扱う便利関数がある • tchには転移学習のサンプルもあって実用的 • tensorflowはサンプルだけでは何とも言えない ⚫ 事前学習済みモデルでの推論 • tensorflowはPythonで学習した重みを利用可能 • tchはPythonで学習した重みが使えるかは不明 • サンプルではOCaml版のモデルを使っている

Slide 9

Slide 9 text

まとめ 9 ⚫ Rustでもディープラーニングは可能 ⚫ ディープラーニング初学者が試しに使うならtch! ⚫ 推論のみ高速化するならtensorflow! ⚫ C++の代替として普及して欲しい

Slide 10

Slide 10 text

ありがとうございました