面向网页的高性能 2D 渲染库,基于 WebGL 和 WebGPU 绘制图形、精灵与文本。
chenglou/handwired
一个将普通 JavaScript 控制流编译为可微分神经网络的研究项目,权重手工写入而非训练得到。
- Star
- 1,819
- Fork
- 151
- 未关闭 Issue
- 9
- 最近提交
- 3天前
这是什么?
Handwired 可以把包含 if-else 分支、循环和状态的普通 JavaScript 程序,转换为仅由浮点数矩阵乘法和 ReLU 构成的神经网络。条件判断被改写为算术运算,例如同时计算两个分支,再用基于 ReLU 的指示量选择其中一个结果,因此网络输出与原程序完全一致。
由于权重是手工编写的,无需训练,整个程序依然保持可微分。合并后的计算既可以在普通 JavaScript 中运行,也可以在 WebGPU 上执行,使已有的 GPU 优化技术能够作用于这些极简的基础运算。
项目探索的用途包括:解冻权重进行训练,把冻结的程序接入通用神经网络做端到端训练,以及让以单线程方式编写的 JavaScript 代码获得接近 GPU 的并行性。示例中包含在 10 万条文档上运行的 JSON 搜索演示。项目使用 Bun 管理,演示也可在线体验。
核心功能
- 01将 if-else、循环和状态转换为矩阵乘法与 ReLU
- 02权重手工编写,无需训练
- 03整个程序保持可微分
- 04可在普通 JavaScript 或 WebGPU 上运行
- 05提供在线演示,包括对 10 万条文档的 JSON 搜索示例
适用场景
- 研究如何将程序表示为神经网络
- 尝试在神经网络中训练冻结的程序逻辑
- 探索普通 JavaScript 代码的 GPU 并行执行
快速上手
- 1
克隆仓库
git clone - 2
安装依赖
bun install - 3
在本地运行演示
bun start
使用前须知
- 这是一个用于演示概念的研究项目,而非可用于生产的库。
- 运行演示需要 Bun 运行时,README 中未说明有替代方案。
标签
常见问题
- handwired 是什么?
- 一个将普通 JavaScript 控制流编译为可微分神经网络的研究项目,权重手工写入而非训练得到。 Handwired 可以把包含 if-else 分支、循环和状态的普通 JavaScript 程序,转换为仅由浮点数矩阵乘法和 ReLU 构成的神经网络。条件判断被改写为算术运算,例如同时计算两个分支,再用基于 ReLU 的指示量选择其中一个结果,因此网络输出与原程序完全一致。
- handwired 可以免费使用吗?用的什么许可证?
- handwired 以 MIT 许可证开源。用于商业产品前,请先确认许可证条款。
- handwired 还在维护吗?
- 活跃维护中。handwired 最近一次提交是在 2026年10月17日。
- handwired 适合用来做什么?
- 研究如何将程序表示为神经网络 尝试在神经网络中训练冻结的程序逻辑 探索普通 JavaScript 代码的 GPU 并行执行
- handwired 怎么安装和运行?
- 克隆仓库: git clone 安装依赖: bun install 在本地运行演示: bun start
- 在哪里获取 handwired?
- 源代码和安装说明在 GitHub 上:https://github.com/chenglou/handwired
概要由 AI 根据项目 README 生成;GitHub 数据每日更新。
相关项目
4.8万5105TypeScriptMIT更新于 3天前
一个嵌入网页运行的 JavaScript GUI 智能体,可用自然语言操控页面界面。
3万2879TypeScriptMIT更新于 13小时前
开源浏览器端抠图工具,基于 WebGPU 或 WebAssembly 本地运行,无需上传图片。
39243TypeScriptApache-2.0更新于 21天前
一体化 JavaScript/TypeScript 工具链,集运行时、打包器、测试运行器和包管理器于一个可执行文件。
9.6万5147RustOther更新于 15小时前
基于 React 构建可同时运行于 Android、iOS 和 Web 的通用原生应用的开源框架。
5.3万1.5万TypeScriptMIT更新于 21小时前
一款速度极快的 JavaScript、TypeScript、JSX 和 CSS 打包工具,提供 CLI、JS 和 Go 接口。
4万1363GoMIT更新于 2个月前