NN-SVG 是一个给做机器学习的人用的开源画图工具。它能用设置参数的方法,很快做出神经网络的图,用来放在论文或者演示里,还能导出 SVG 文件。这个工具支持三种画法,分别是 FCNN(全连接)、LeNet 风格的 CNN 和 AlexNet 风格的深度网络。前两种用 D3.js 画成平面,后一种用 Three.js 画成立体,这样在写论文或者上课时用起来比较清楚、一致。
NN SVG如何使用
NN SVG在线用
可以直接打开网页:
LeNet/CNN 风格:https://alexlenail.me/NN-SVG/LeNet.html
FCNN 风格:https://alexlenail.me/NN-SVG/FCNN.html
在页面上可以调网络大小、节点和间距、颜色和连线的样子,一边改一边看效果,然后导出 SVG。这个方法不用装到电脑,适合急着要图的时候用。
装在本地用
1. 先下载代码:
git clone https://gitcode.com/gh_mirrors/nn/NN-SVG.git cd NN-SVG
2. 启动方法选一个:
用 Python:python -m http.server 8000
用 Node.js:npx http-server -p 8080
3. 然后在浏览器打开 http://localhost:8000或 http://localhost:8080。
4. 装在本地适合需要一直能用、一次导出很多图或者想自己改样式的人。
NN SVG主要功能和应用
可以调节点大小、层之间的距离、连线的粗细和不透明程度。FCNN 还能按权重让颜色和线变深或变浅,一眼看出正负和大小。
三种画法分别是:
FCNN:点和线很清楚,适合上课讲全连接网络。
LeNet 风格 CNN:把卷积和池化层画成特征图的样子,容易看通道和核的大小。
AlexNet 风格 3D:有立体层次,还能转着看,适合演讲时说明深度网络结构。
NN SVG做的 SVG 可以放进论文、报告或者网页。3D 图适合演示和讲课,2D 图适合排论文和打印。
导出和兼容
点页面上的 Export SVG 就能拿到矢量图。如果导出有问题,可以在浏览器里打开开发者工具,把 <svg>...</svg> 这一段复制出来,存成 .svg 文件。
不同浏览器情况不一样。Chrome 和 Firefox 导出和字体比较好用。Safari 有时不行,可以右键另存或者复制 SVG 代码。
Word 对 SVG 支持不好,可能显示不对。可以截屏存成 PNG,或者用 Inkscape 转成 EMF,这样还是矢量,适合论文。
常见问题和办法
本地打开样式乱或者 MIME 报错,先用 http-server 启动。如果用 Python 启动样式不对,就换端口或者改用 http-server。
导出空白或者受跨域限制,不要用 file:// 直接打开,要用 HTTP 服务器打开,不行就关掉一些浏览器插件。
图太大运行慢,可以减少节点数、不显示文字、分开画。很复杂的图可以分几次导出,再用矢量软件拼起来。
打印和投稿最好用 SVG。用 Inkscape 看看页面大小和字体有没有嵌好,不行就导出 PDF 或 EPS,方便走期刊流程。

论文工具
文献管理
中文文献
英文文献
选刊投稿
专利检索
学术检索
学术社区
Ai+学习
英语学习
考研考公
出国留学
资格考试
学习平台
宝藏网站 