ONNXとは言語である
DRANK
ONNX(Open Neural Network eXchange)は一般に「モデルのエクスポート用フォーマット」と認識されているが、本書はONNXを「テンソル計算のためのDSLであり中間表現(IR)」として捉え、プログラミング言語としての性質を論証する。 前半では、プログラミング言語の要素(構文・意味論・型システム・演算子・制御フロー・抽象化)を整理し、ONNXの仕様と1対1で照合する。 後半では、実際に「ONNXで書く」ことを実証する。画像処理100超をONNX演算子のみで実装した「onnx-cv-graph」と、ブロック崩しゲームの全ロジックを91ノードの単一計算グラフに収めた「onnx-breakout」の2プロジェクトを紹介する。 限界(可読性の低さ、I/Oの欠如、抽象化の弱さ等)も正直に認めた上で、それでもONNXは言語であると結論する。 という感じのネタ本🦔