示例
展示 Tiny-DL-Inference 功能的实用代码示例。
概述
本节包含完整的、可运行的示例,展示如何在常见任务中使用 Tiny-DL-Inference。每个示例都包含逐步说明,可以直接从仓库的 /examples 目录运行。
可用示例
MNIST 数字识别
使用卷积神经网络进行数字分类的完整流程。学习如何:
- 初始化推理引擎
- 定义和加载 CNN 模型
- 准备图像输入张量
- 运行推理并解释预测结果
- 正确清理资源
自定义模型加载
从零构建和加载自定义模型。涵盖:
- 使用层定义模型架构
- 创建和分配权重张量
- 理解层连接和参数
- 验证模型结构
Web 集成
将 Tiny-DL-Inference 集成到 Web 应用程序中。演示:
- HTML 设置和文件输入处理
- 通过 Fetch API 加载模型
- 使用 Canvas 处理图像
- 显示带计时的推理结果
- 错误处理和状态更新
性能基准测试
测量和比较算子性能。展示如何:
- 对单个算子进行基准测试
- 比较内核融合与分离执行
- 评估 NCHW 与 NHWC 内存布局
- 计算加速比和内存流量减少
运行示例
克隆仓库并安装依赖:
bash
git clone https://github.com/LessUp/tiny-dl-inference.git
cd tiny-dl-inference
npm install1
2
3
2
3
运行示例(需要支持 WebGPU 的浏览器):
bash
npx ts-node examples/mnist-demo.ts
npx ts-node examples/benchmark-demo.ts1
2
2
提示
这些演示需要支持 WebGPU 的浏览器,如 Chrome 113+ 或 Edge 113+。
示例源文件
所有示例位于 /examples 目录:
| 文件 | 描述 |
|---|---|
mnist-demo.ts | 使用 CNN 的 MNIST 数字分类 |
benchmark-demo.ts | 内核融合和内存布局基准测试 |