# WebDNN [English](README.md) WebDNN version 2 は、ニューラルネットワークの推論を Web ブラウザ上で直接実行します。WebDNN 1.x との大きな違いは、入力として ONNX 形式のモデルを受け付ける点です。Python による前処理なしで、ONNX モデルを直接 Web ブラウザに読み込めます。さらに、オフラインでのモデル最適化も可能です。 [Version 1.x](https://github.com/mil-tokyo/webdnn/tree/v1.2.11) ## 対応バックエンド(高速化技術) - **WebGPU** — 現行の WGSL ベース実装。最新の Chrome / Edge(および WebGPU が有効な Safari / Firefox)で動作します。 - **WebGL** — WebGL2 が利用可能な場合は WebGL2 を使用し、WebGL1 にフォールバックします。 - **WebAssembly** — カーネルの emscripten ビルドが必要です。[docs/emscripten-setup.md](docs/emscripten-setup.md) を参照してください。 ## 動作環境 - Node.js 20 以上(`.nvmrc` 参照) - Python 3.10 以上([uv](https://docs.astral.sh/uv/) 経由)— モデル最適化およびテスト用フィクスチャ生成時のみ必要 - emscripten 3.1 以上 — WebAssembly バックエンドをビルドする場合のみ必要 ## セットアップ ``` npm install uv sync # Python のグラフトランスパイラ/最適化を使う場合のみ ``` ## ビルド ``` npm run build:all ``` ビルド成果物(`dist/` 内): - `dist/webdnn.js` — UMD バンドル(グローバル `WebDNN`)。最適化されていない ONNX モデルを読み込めます - `dist/webdnn-core.js` — WebDNN によりオフライン最適化された ONNX モデルを読み込めます - `dist/op-*.js` — オペレータバンドル。実行時に動的ロードされます - `dist/types/` — TypeScript 型定義 `build:all` は Vite ビルドの前に、WGSL シェーダ生成(`shader:webgpu`)とオペレータエントリ生成(`makeShaderList`、Python 3 が必要)を実行します。WebAssembly バックエンドは `build:all` ではビルドされません。ビルドには emscripten が必要です([docs/emscripten-setup.md](docs/emscripten-setup.md) 参照)。 ## 基本的な使い方 `dist/webdnn.js` を `