More Related Content
Similar to 自作プログラミング言語の集い (20)
More from Natsutani Minoru (20)
自作プログラミング言語の集い
- 1. ©2019 Pasona Tech, Inc. All Rights Reserved.
自作プログラミング言語の集い
自作のDeep Learningランタイムを作ろう!
株式会社パソナテック
DX戦略本部 デジタルテクノロジーグループ
Qumico Product Manager
夏谷 実
2020/10/09
- 2. ©2019 Pasona Tech, Inc. All Rights Reserved.
自己紹介
2
株式会社パソナテック
DX戦略本部 デジタルテクノロジーグループ
Qumico Product Manager
夏谷 実
FPGAやLSIの画像処理から、Deep Learningの世界に入る。プログラミングが好き
一昨年よりQumicoのプロダクトマネージャに就任。
大阪と東京と半々くらいの生活を続けていたが、コロナの影響により完全リモートワークに移行。
TensorFlow Users Group KANSAIHatena id: natsutan Qiita id: natsutan
2019/9/25
https://qiita.com/natsutan
2019/9/25
https://tfug-kansai.connpass.com/event/146442/2019/9/25
http://natsutan.hatenablog.com/
- 3. ©2019 Pasona Tech, Inc. All Rights Reserved.
最近やったこと
原書から10年寝かせたタイガーブックを最後まで読んだ
3
最新コンパイラ構成技法
https://www.shoeisha.co.jp/book/detail/9784798114682
翔泳社
いつもパーサーで挫折する
ので、気にせず最後まで目
を通してみた
- 4. ©2019 Pasona Tech, Inc. All Rights Reserved.
感想
4
第 I 部 コンパイラ基礎編
第1章 はじめに
第2章 字句解析
第3章 構文解析
第4章 抽象構文
第5章 意味解析
第6章 駆動レコード
第7章 中間コードへの変換
第8章 基本ブロックとトレース
第9章 命令選択
第10章 生存解析
第11章 レジスタ割付け
第12章 コンパイラ制作
第 II 部 コンパイラ発展編
第13章 ごみ集め
第14章 オブジェクト指向言語
第15章 関数型プログラミング言語
第16章 多相型
第17章 データフロー解析
第18章 ループ最適化
第19章 静的単一代入形式
第20章 パイプライニングとスケジュール
第21章 メモリ階層
難しい
面白い
知ってる
(注)個人の感想です。
https://www.irasutoya.com/
- 5. ©2019 Pasona Tech, Inc. All Rights Reserved.
コンパイラの前半を飛ばそう
5
定番:計算機プログラムの構造と解釈
・最初から構文木を記述する
・日本語の情報はまだまだ多い
・原文が公開されている。
もっと違う事をしたい人にお勧め!
自作ONNX Runtime
https://mitpress.mit.edu/sites/default/files/sicp/index.html
- 6. ©2019 Pasona Tech, Inc. All Rights Reserved.
業界標準フォーマットONNX
6
Open Neural Network Exchange(ONNX)
Microsoftの資料から引用
https://static.sched.com/hosted_files/linaroconnectsandiego/83/O
NNX%20%26%20ONNX%20Runtime%20-%20SAN19-211.pdf
2019/9/25
Deep Learningのフレームワーク ONNXの実行(推論)環境
ONNX Runtime
- 7. ©2019 Pasona Tech, Inc. All Rights Reserved.
ONNXフォーマット
7
Netronで可視化
• Model
• Version info
• Metadata
• Graph
• Graph
• Inputs and Outputs
• Graph name
• Computational Nodes
• Computational Graph
• Operator
• Operator Parameter
• Inputs and Outputs
中身はProtocol Buffers
APIが用意されているPythonだけでなくRust等でも操作可能
いきなり計算グラフか
ら始められる
- 8. ©2019 Pasona Tech, Inc. All Rights Reserved.
ONNXを扱うメリット
・自力でDeep Learningを動かすの楽しい
・フォーマットはProtocol Buffer
・完全独自言語よりもユーザーが多い
・学習済みONNXモデルが公開されている。
・ONNX のRuntimeも複数公開されている。
・今後も楽しみ
8
- 9. ©2019 Pasona Tech, Inc. All Rights Reserved.
最近読んで良かった本
9
https://www.oreilly.co.jp/books/9784873117584/
https://www.oreilly.co.jp/books/9784873119069/
https://www.oreilly.co.jp/books/9784873118369/
O'Reilly Japan
ゼロから作るDeep Learning
――Pythonで学ぶディープラーニングの理論と実装
ゼロから作るDeep Learning ❷
――自然言語処理編
ゼロから作るDeep Learning ❸
――フレームワーク編
Writing Compilers and Interpreters: A Software Engineering
Approach, 3rd Edition
https://www.wiley.com/en-jp/Writing+Compilers+and+Interpreters:+A+Software+Engineering+Approach,+3rd+Edition-p-9780470177075
JavaでPascalのコンパイラ、インタープリタを作る本。理論を飛ばして実装
寄りの話が多い。最初に、フロントエンド、中間処理、バックエンドまでラ
フに作って徐々に機能を増やしていく本。
IDEやデバッガの作り方も載っている。
筆者はBeautiful Codeの執筆者なので、ソースコードは綺麗。
Factory PatternやInterfaceの分離などが上手く使われています。
Editor's Notes
- ・元々画像処理のバックグランドがあって、画像処理のアルゴリズムの一つとしてDLに興味を持った
・2016年の、GDG Kobeでテンサーフローの話を聞いて、そこからとりこになってます。
・DLは実際難しく、日々勉強。特に、手法がすぐ古くなる。
・最近は後で説明するAutoML(AIがAIを作る)技術に注目と期待をしています。
・本社には1月末~行ってない。大阪支店は最近週一くらい。
- 僕も書いたことがある。
- ONNXの話を閉める
15分