Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >神经网络可视化有3D版本了,美到沦陷!(已开源)

神经网络可视化有3D版本了,美到沦陷!(已开源)

作者头像
小白学视觉
发布于 2025-01-23 11:08:54
发布于 2025-01-23 11:08:54
1910
举报

计算机视觉,离不开CNN。

可是,卷积、池化、Softmax……究竟长啥样,是怎样相互连接在一起的?

对着代码凭空想象,多少让人有点头皮微凉。于是,有人干脆用Unity给它完整3D可视化了出来。

还不光是有个架子,训练过程也都呈现得明明白白。

比如随着epoch(迭代次数)的变化,训练过程中各层出现的实时变化。

为了能更清楚地展示网络细节,用户还可以在其中自由地折叠、扩展每个层。

比如将特征图在线性布局和网格布局之间转换。

折叠卷积层的特征图输出。

对全连接层进行边绑定(edge bunding)等等。

这样的可视化图像,可以通过加载TensorFlow的检查点来构建。

也可以在Unity编辑器中设计。

是不是有点鹅妹子嘤那感觉了?

最近,这个项目又在社交媒体上火了起来。

网友们纷纷表示:

“要是能在训练的时候看到这个过程,再长时间我也能忍啊。”

“求开源。”

该项目的作者,是一位来自维也纳的3D特效师。

据他介绍,之所以创建这样一个CNN可视化工具,是因为他自己初学神经网络时,经常觉得很难理解卷积层之间是如何相互连接,又如何与不同类型的层连接的。

而该工具的主要功能包括,卷积、最大池化和完全连接层的可视化表示,以及各种能实现更清晰可视化的简化机制等等。

总而言之,就是想让初学者通过最直观的方式,来get到CNN的重点。

如何用Unity搞出一个3D网络

在正式上手Unity前,作者先在Houdini软件中,搭建了一个可视化的3D网络原型。

也就是说,先给Unity版3D网络提供一个搭建思路,提前准备好实现展示卷积计算的方法、特征图的形状、边绑定的效果等问题。

它的节点编辑器长这样:

然后,就可以在Unity上搭建3D神经网络了。

首先,需要预设好神经网络的“形状”。

由于之前并没有用过Unity,作者先学习了着色器和过程式几何相关的知识。

这里面,作者发现了一些局限性,他采用的是Unity为着色器开发的语言Shaderlab,这个语言无法使用着色变化,只有对语义进行预定义的变量,才能让它在顶点、几何和像素着色器之间传递。

而且,它无法任意分配顶点属性,只有位置、颜色、UV等预定义属性。(可能这也是3D网络无法实时改变颜色的原因之一)

在研究了一些实例化(instancing)相关的概念后,作者计划采用几何着色器的方法生成神经网络的连线。其中起点和终点被传递到顶点着色器,并直接转发到几何着色器。

这些线,最多可以由120个顶点组成,因为Unity允许的几何着色器能创建的变量的标量浮点数为1024。

设计后的网络形状,大致长这样:

然后,就是从模型的TensorFlow代码中,生成对应的3D神经网络图像。

其中,Tensorflow-native.ckpt格式的文件,需要存储重构模型图所需的数据、二进制的权重读取和激活值,以及特定层的名字。

以Cifar10-greyscale数据集为例,需要编写一个检查点(checkpoint)文件,以及设置随即初始化的权重。

在那之后,需要加载这些检查点文件、启动TensorFlow会话,输入训练示例,以便查询每一层的激活函数。

然后编写一个json文件,存储每一层的形状、名称、权重和激活函数,便于读取。然后使用权重值,将颜色数据分配给各层的Unity Mesh。

最终搞出来的效果,还是不错的:

作者还录了个开发视频,在文末可以找到地址。

相关研究还不少

事实上,此前已经有不少学者,进行过神经网络可视化的研究。

例如,去年5月,一位中国博士就可视化了卷积神经网络,将每一层的变化都展示得非常清楚,只需要点击对应的神经元,就能看见它的“操作”。

这是用TensorFlow.js加载的一个10层预训练模型,相当于在浏览器上就能跑CNN模型,也可以实时交互,显示神经元的变化。

不过,这还是个2D的项目。

目前,也已经有人像上面那个神经网络模型一样,做出了3D的可视化神经网络:

这个项目,同样用到了边绑定、光线追踪等技术,与特征提取、微调和归一化相结合,将神经网络可视化。

这项项目希望能借由这些技术,来估计神经网络中不同部分的重要性。

为此,作者将神经网络的每一部分都用不同的颜色来表示,根据节点和节点在网络中的重要性,来预测它们之间的关联性。

大致的处理过程是这样的:

如果对于这类3D神经网络可视化感兴趣,可以在文末找到对应的开源项目地址。

作者介绍

Stefan Sietzen,现居维也纳,此前曾是个3D视觉方向的自由职业者。

目前,他在维也纳工业大学读硕,对视觉计算(visual computing)非常感兴趣,这个3D神经网络,就是他在硕士期间做的项目之一。

开发过程: https://vimeo.com/stefsietz

已开源的3D神经网络项目: https://github.com/julrog/nn_vis

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2025-01-23,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 小白学视觉 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
360度无死角、近距离看「CNN」训练,是种什么体验?网友:美得不真实
对着代码凭空想象,多少让人有点头皮微凉。于是,有人干脆用Unity给它完整3D可视化了出来。
量子位
2021/02/26
5180
360度无死角、近距离看「CNN」训练,是种什么体验?网友:美得不真实
如何1人5天开发完3D数据可视化大屏
相信从事过数据可视化开发的你对大屏并不陌生,那么开发一个酷炫的大屏一定是很多数据可视化开发者想要做的事情。
ConardLi
2020/10/30
3.6K0
如何1人5天开发完3D数据可视化大屏
22 款设计和可视化神经网络的工具
深度学习领域,最常见的就是各种网络模型,那么在写论文或者文章,介绍网络模型的时候,最好的办法当然就是展示代码画图,今天介绍的 Github 项目,就是整理了 22 个设计和可视化网络结构的工具,其地址如下:
kbsc13
2020/06/15
2K0
卷积神经网络可视化的直观解析
最早的卷积神经网络是Alexander Waibel在1987[5]年提出的延时神经网络(TDNN)。TDNN是一种应用于语音识别问题的卷积神经网络。它使用FFT预处理的语音信号作为输入,它的隐藏层由两个一维卷积核组成,用于提取频域中不变的平移特征[6]。在TDNN出现之前,人工智能领域在BP神经网络(back-propagation)的研究方面取得了突破性进展[7],因此TDNN能够使用BP框架进行学习。在最初作者的对比实验中,在相同条件下,TDNN的性能优于隐马尔可夫模型(HMM),后者是80年代语音识别的主流算法[6]。
小白学视觉
2020/06/11
1.4K0
3D 可视化卷积、池化!终于能看懂神经网络到底在干啥了...
来源:量子位(公众号id:qbitai)本文约1100字,建议阅读6分钟神经网络在工作的时候,里面到底是什么样? 为了能透视这个“AI黑箱”中的过程,加拿大蒙特利尔一家公司开发一个3D可视化工具Zetane Engine。 只需要上传一个模型,Zetane Engine就可以巡视整个神经网络,并且还可以放大网络中的任何一层,显示特征图,看清流水线上的每一步: △图注:卷积层的特征图(左)和特征图的3D可视化(右) 目前Zetane Engine不同系统的版本都可以在GitHub中找到(安装包见文末链接)
数据派THU
2022/05/20
7910
3D 可视化卷积、池化!终于能看懂神经网络到底在干啥了...
基于GAN的单目图像3D物体重建(纹理和形状)
很多机器学习的模型都是在图片上操作,但是忽略了图像其实是3D物体的投影,这个过程叫做渲染。能够使模型理解图片信息可能是生成的关键,但是由于光栅化涉及离散任务操作,渲染过程不是可微的,因此不适用与基于梯度的学习方法。这篇文章提出了DIR-B这个框架,允许图片中的所有像素点的梯度进行分析计算。方法的关键在于把前景光栅化当做局部属性的加权插值,背景光栅化作为基于距离的全局几何的聚合。通过不同的光照模型,这个方法能够对顶点位置、颜色、光照方向等达到很好的优化。此项目有两个主要特点:单图像3D物体预测和3D纹理图像生成,这些都是基于2D监督进行训练的。
3D视觉工坊
2020/12/11
1.9K0
基于GAN的单目图像3D物体重建(纹理和形状)
ChatGPT写博客:用TensorBoard可视化神经网络的方法
本文介绍基于TensorBoard工具,对tensorflow库构建的神经网络模型加以可视化,并对其训练过程中的损失函数(Loss)、精度指标(Metric)等的变化情况加以可视化的方法。
疯狂学习GIS
2023/06/26
3220
ChatGPT写博客:用TensorBoard可视化神经网络的方法
学界 | 中科院自动化所提出不规则卷积神经网络:可动态提升效率
选自arXiv 作者:马佳彬等 机器之心编译 参与:李泽南 近日,中国科学院自动化研究所马佳彬、王威、王亮等人发表的研究提出了一种新形式的卷积神经网络——不规则卷积神经网络。研究人员认为新的方法能够解
机器之心
2018/05/08
1.1K0
学界 | 中科院自动化所提出不规则卷积神经网络:可动态提升效率
干货 | 梯度上升可视化卷积神经网络
AI科技评论按:本文作者陈仲铭,AI科技评论获其授权发布。 为什么我的CNN网络模型训练出来的东西总是过度拟合?已经改了很多次参数都不行,到底是样本有问题还是网络模型定义有问题?问题在哪来? CNN网络模型中的每一层学习的是些什么特征?为什么有的人说第一层卷积核提取的是边缘信息特征,有的人却说第一层卷积核提取的是颜色特征?到底是两者都有还是什么回事? CNN网络可不可以减掉几层然后保持相同的精度和损失率呢?减掉几层可以减少网络参数,本来我的GPU显存不是很大,太大的网络塞不下,不想重新买GPU只能减层,有没
AI科技评论
2018/03/14
1.2K0
干货 | 梯度上升可视化卷积神经网络
TensorFlow也可以做图形渲染了:当神经网络遇上计算机图形学
谷歌给TensorFlow加入了计算机图形处理功能TensorFlow Graphics,让神经网络可以更好地理解计算机世界里的图形操作。
量子位
2019/05/16
9600
TensorFlow也可以做图形渲染了:当神经网络遇上计算机图形学
神经网络可视化工具,超全汇总!
神经网络可视化是指通过图形化的方式展示神经网络的结构、参数、输入、输出、中间结果等信息,可以帮助用户更好地神经网络的内部工作原理和特征提取过程,以优化神经网络模型
算法进阶
2023/09/26
5.4K0
神经网络可视化工具,超全汇总!
TensorSpace:一套用于构建神经网络3D可视化应用的框架
今天要为大家推荐一套超酷炫的,用于构建神经网络 3D 可视化应用的框架——TensorSpace。
AI科技大本营
2018/12/13
1.4K0
卷积神经网络实现图像识别及过程可视化
样本按照不同类别保存在不同文件夹中,每个文件夹代表一个类别,然后这些文件夹放在同一文件夹中,该文件夹和脚本同一目录下。
全栈程序员站长
2022/06/27
6180
卷积神经网络实现图像识别及过程可视化
图解深度神经网络的架构!
神经网络是复杂、多维、非线性的数组运算。如何在避免过于复杂或重复的情况下呈现深度学习模型架构的重要特征呢?又该以何种方式清晰直观、启发性地呈现它们呢?(好看也是加分项!)无论研究还是教学项目对此都没有固定标准。
算法进阶
2023/08/28
5640
图解深度神经网络的架构!
【视频】CNN(卷积神经网络)模型以及R语言实现回归数据分析|附代码数据
无人驾驶汽车最早可以追溯到1989年。神经网络已经存在很长时间了,那么近年来引发人工智能和深度学习热潮的原因是什么呢?(点击文末“阅读原文”获取完整代码数据)
拓端
2022/11/02
1.4K0
卷积神经网络表征可视化研究综述(1)
近年来, 深度学习在图像分类、目标检测及场景识别等任务上取得了突破性进展, 这些任务多以卷积神经网络为基础搭建识别模型, 训练后的模型拥有优异的自动特征提取和预测性能, 能够为用户提供“输入–输出”形式的端到端解决方案. 然而, 由于分布式的特征编码和越来越复杂的模型结构, 人们始终无法准确理解卷积神经网络模型内部知识表示, 以及促使其做出特定决策的潜在原因. 另一方面, 卷积神经网络模型在一些高风险领域的应用, 也要求对其决策原因进行充分了解, 方能获取用户信任. 因此, 卷积神经网络的可解释性问题逐渐受到关注. 研究人员针对性地提出了一系列用于理解和解释卷积神经网络的方法, 包括事后解释方法和构建自解释的模型等, 这些方法各有侧重和优势, 从多方面对卷积神经网络进行特征分析和决策解释. 表征可视化是其中一种重要的卷积神经网络可解释性方法, 能够对卷积神经网络所学特征及输入–输出之间的相关关系以视觉的方式呈现, 从而快速获取对卷积神经网络内部特征和决策的理解, 具有过程简单和效果直观的特点. 对近年来卷积神经网络表征可视化领域的相关文献进行了综合性回顾, 按照以下几个方面组织内容: 表征可视化研究的提起、相关概念及内容、可视化方法、可视化的效果评估及可视化的应用, 重点关注了表征可视化方法的分类及算法的具体过程. 最后是总结和对该领域仍存在的难点及未来研究趋势进行了展望.
用户9882025
2022/08/09
5090
教程 | 通过可视化隐藏表示,更好地理解神经网络
将神经网络可视化是非常有趣的。对于监督学习而言,神经网络的训练过程可以看做是学习如何将一组输入数据点转换为可由线性分类器进行分类的表示。本文我想利用这些(隐藏)表示进行可视化,从而更加直观地了解训练过程。这种可视化可以为神经网络的性能提供有趣的见解。
机器之心
2018/09/20
9590
教程 | 通过可视化隐藏表示,更好地理解神经网络
【技术综述】“看透”神经网络
大家最诟病深度学习的一点就是理论基础不够系统,模型就像一个黑盒子,这就更加凸显了深度学习模型可视化的重要性了。
用户1508658
2019/07/25
3420
【技术综述】“看透”神经网络
精通 TensorFlow 2.x 计算机视觉:第一部分
在本节中,您将加深对理论的理解,并学习有关卷积神经网络在图像处理中的应用的动手技术。 您将学习关键概念,例如图像过滤,特征映射,边缘检测,卷积运算,激活函数,以及与图像分类和对象检测有关的全连接和 softmax 层的使用。 本章提供了许多使用 TensorFlow,Keras 和 OpenCV 的端到端​​计算机视觉管道的动手示例。 从这些章节中获得的最重要的学习是发展对不同卷积运算背后的理解和直觉-图像如何通过卷积神经网络的不同层进行转换。
ApacheCN_飞龙
2023/04/27
1.4K0
精通 TensorFlow 2.x 计算机视觉:第一部分
深度学习(三)转-可视化理解卷积神经网络
原文地址:https://www.cnblogs.com/DOMLX/p/9579461.html
徐飞机
2018/09/30
9490
深度学习(三)转-可视化理解卷积神经网络
推荐阅读
相关推荐
360度无死角、近距离看「CNN」训练,是种什么体验?网友:美得不真实
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档