Skip to content

dscmarkw/VisualTorch

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commit
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

VisualTorch

VisualTorch 是一个图形化 AI 模型设计引擎原型,目标是让用户像使用 Scratch 或 LabVIEW 一样,通过模块和连接搭建神经网络、数据处理流程、训练配置与输出逻辑,并将图形化设计翻译为 PyTorch 代码。

当前阶段以网页作为第一个前端目标,已经支持 MLP、CNN、RNN 的基础模块化搭建、tensor shape 推导和 PyTorch 代码预览。

项目目标

VisualTorch 至少包含三个层级:

  • 前端:提供图形化编辑器、模块配置、图校验、shape 展示、代码预览与导出。
  • 后端:跨平台管理项目、模块图、节点参数、连接关系、shape 推导和版本数据。
  • 翻译器:将模块图翻译为 PyTorch 代码。

后端和翻译器应保持平台无关,未来可服务网页、桌面 App、Unity/UE 插件等不同前端。

当前能力

  • 基于网页的图形化原型编辑器。
  • 模块库按 Data、Layers、Operations、Losses、Optimizers、Training、Outputs 分类折叠展示。
  • 支持中文和英文界面,并会记住用户选择。
  • 可从模块库添加模块,并在画布中删除模块。
  • 可拖动节点位置,点击输出/输入端口创建连接。
  • 可删除节点或连线,相关状态会自动更新。
  • 可拖动侧栏和代码预览分隔条调整工作区大���。
  • 支持 MLP、CNN、RNN 示例图。
  • 支持 Conv2d、MaxPool2d、AvgPool2d、BatchNorm2d、Embedding、SimpleRNN、GRU、LSTM、LastTimeStep 等模块。
  • 每个节点会记录并展示输入/输出 tensor shape。
  • 当 Linear、Conv2d、Pool、RNN 等模块的输入 shape 或输出 shape 不合法时,会在节点和校验面板报错。
  • PyTorch 翻译器按 DAG 拓扑顺序生成 forward,不再局限于 nn.Sequential

目录结构

apps/
  web/
    index.html
    styles.css
    src/
      app.js
packages/
  core/
    src/
      exampleMlp.js
      exampleModels.js
      exampleResidual.js
      graphBackend.js
      moduleRegistry.js
      pytorchTranslator.js
      shapeInference.js
agent.md
PLAN.md

快速开始

当前原型不依赖 npm 包,可以通过本地 HTTP 服务访问。请在仓库根目录运行:

python -m http.server 5173

然后打开:

http://localhost:5173/apps/web/

Shape 校验示例

错误 CNN 示例中,输入图像 shape 为 [16, 1, 5, 5],卷积层参数为 kernelSize=7, padding=0, stride=1。根据卷积输出公式,输出高宽会变成 -1,因此系统会报错:

bad_conv: Conv2d output shape is invalid: height=-1, width=-1.
Check kernelSize, stride, padding and dilation.

此时 PyTorch 代码预览会停止导出,并提示需要修正图。

设计原则

  • 前端只负责交互和展示,不直接拼接训练代码。
  • 后端保存标准化、可序列化的图数据。
  • shape 推导属于核心层能力,所有前端共享。
  • 翻译器只依赖标准图数据,不依赖某个具体前端。
  • 模块定义集中维护,所有平台共享同一套模块语义。
  • 生成代码应可读、稳定、便于用户继续手写修改。

About

Visually build your AI

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors