0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

CNN完整的3D可视化出来是什么样子?

人工智能与大数据技术 来源:AI新媒体量子位 作者:AI新媒体量子位 2021-04-18 11:00 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

计算机视觉,离不开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的可视化神经网络:

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

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

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

e5a09566-9f82-11eb-8b86-12bb97331649.png

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

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

原文标题:一位外国小哥把整个 CNN 都给可视化了,卷积、池化清清楚楚!网友:美得不真实。

文章出处:【微信公众号:人工智能与大数据技术】欢迎添加关注!文章转载请注明出处。

责任编辑:haq

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 神经网络
    +关注

    关注

    42

    文章

    4842

    浏览量

    108160
  • 机器视觉
    +关注

    关注

    166

    文章

    4829

    浏览量

    126490

原文标题:一位外国小哥把整个 CNN 都给可视化了,卷积、池化清清楚楚!网友:美得不真实...

文章出处:【微信号:TheBigData1024,微信公众号:人工智能与大数据技术】欢迎添加关注!文章转载请注明出处。

收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    高质量可视化大屏应该这样设计

    ,支持 2D 组态、3D 数字孪生、2.5D 可视化界面同步渲染,兼顾渲染效率与视觉效果。 组件体系 :内置完整自研图表库、UI 组件库、面
    的头像 发表于 04-23 14:22 62次阅读
    高质量<b class='flag-5'>可视化</b>大屏应该这样设计

    水墨国风智慧大坝 3D 可视化系统技术实现

    水利工程作为国家基础设施关键组成部分,智慧大坝建设依托物联网、大数据、5G 与数字孪生技术,实现工程全域感知、智能管控。本文基于图扑软件 HT 引擎,从技术实现层面解析水墨国风智慧大坝 3D 可视化
    的头像 发表于 04-16 14:51 59次阅读
    水墨国风智慧大坝 <b class='flag-5'>3D</b> <b class='flag-5'>可视化</b>系统技术实现

    3D系统可视化

    本身的深入描述和F-Theta透镜的应用示例。 光学系统的3D-可视化 VirtualLab Fusion提供的工具可以实现光学系统的3D可视化,因此可以用于检查元件的位置,以及快速了
    发表于 03-30 09:25

    森林消防智慧预警技术实现:火灾监测 Web GIS 可视化平台搭建

    HTML5 技术体系,融合 GIS、3D 可视化、数据对接与实时交互技术,实现森林火灾的全流程智慧预警与救援指挥,同时该技术架构也可适配天然气站消防、防汛救灾等多场景可视化需求。 本平台的核心技术支撑为图扑软件自主研发的 HT
    的头像 发表于 03-19 11:31 175次阅读
    森林消防智慧预警技术实现:火灾监测 Web GIS <b class='flag-5'>可视化</b>平台搭建

    FlexViz:KiCad 柔性电路板 3D 折叠可视化插件

    布局中定义 折叠标记 ,并通过数学变换实时渲染出 PCB 弯折后的  3D 交互模型 。  ” 众所周知,KiCad 原生的 3D 查看器虽然强大,但它默认只能显示平面的板子。以前,对于使用 KiCad 设计挠性电路板(FPC)或软硬结合板的工程师来说,想要检查折弯后的干
    的头像 发表于 02-03 11:21 319次阅读
    FlexViz:KiCad 柔性电路板 <b class='flag-5'>3D</b> 折叠<b class='flag-5'>可视化</b>插件

    轻量化 3D 赋能新能源:HT 技术实现光伏与光热发电站

    在清洁低碳环保新能源产业加速数字化转型的背景下,电站运维的智能化、可视化成为提升运营效率、优化管理模式的核心诉求。本文围绕 HT 前端组件库的技术应用,聚焦 3D 光伏与光热发电站可视化系统开发
    的头像 发表于 01-14 16:35 736次阅读
    轻量化 <b class='flag-5'>3D</b> 赋能新能源:HT 技术实现光伏与光热发电站

    基于图扑 HT 数字孪生 3D 风电场可视化系统实现解析

    了数字孪生 3D 风电场可视化系统,实现了风电场全场景的远程监测、智能巡检与数字化管理。本文从技术角度出发,结合系统功能模块,深入解析各核心功能的实现逻辑与技术路径。 系统以 HT for Web 为核心技术支撑,该引擎基于 WebGL 与 Canvas 技术构建,具备高
    的头像 发表于 01-09 15:35 559次阅读
    基于图扑 HT 数字孪生 <b class='flag-5'>3D</b> 风电场<b class='flag-5'>可视化</b>系统实现解析

    图扑软件 3D 场景预加载应用实现

    预加载是在进入正式场景之前提前加载所需模型、材质、图片等资源的技术手段,其核心价值在于消除资源加载等待,确保场景首次渲染即可完整呈现,从而提供无缝、流畅的用户体验。在复杂的 Web 3D 可视化
    的头像 发表于 12-01 16:04 951次阅读
    图扑软件 <b class='flag-5'>3D</b> 场景预加载应用实现

    基于 HT 技术的园区元宇宙可视化管理平台

    设计、核心功能实现及技术亮点,展现如何通过HT技术实现园区“安环能”一体化管控。 HT 技术作为平台开发的核心支撑,其基于 HTML5 标准的特性,为园区可视化管理提供了轻量、高效、跨终端的解决方案。平台整体采用“3D场景渲染+2D
    的头像 发表于 11-07 14:54 578次阅读
    基于 HT 技术的园区元宇宙<b class='flag-5'>可视化</b>管理平台

    【产品介绍】Altair HyperView用于仿真和CAE分析的后处理和数据可视化

    详细的交互式3D数据可视化以及FEA和多体系统仿真结果的探索。轻松管理大型结果文件,并将数据转换为综合动画。HyperView的多学科查看器增强了用户对复杂仿真的
    的头像 发表于 09-19 17:02 1043次阅读
    【产品介绍】Altair HyperView用于仿真和CAE分析的后处理和数据<b class='flag-5'>可视化</b>

    数字孪生可视化系统构建行业数字化智能管理生态!

    数字孪生可视化系统具备丰富的模型组件,包括二维平面组件及3D模型组件,可根据用户需求进行定制。数字孪生可视化系统在行业数字化升级、数字化管理中有着重要的意义,充分利用大数据技术和信息技术,能够实现物理…
    的头像 发表于 09-19 11:45 863次阅读
    数字孪生<b class='flag-5'>可视化</b>系统构建行业数字化智能管理生态!

    玩转 KiCad 3D模型的使用

    时间都在与 2D 的焊盘、走线和丝印打交道。但一个完整的产品,终究是要走向物理世界的。元器件的高度、接插件的朝向、与外壳的配合,这些都是 2D 视图难以表达的。 幸运的是,KiCad 提供了强大的
    的头像 发表于 09-16 19:21 1.2w次阅读
    玩转 KiCad <b class='flag-5'>3D</b>模型的使用

    3Dfindit 提供的数字立方体模型为研究项目的可视化提供了支持

    Dfindit 魔方的帮助下实现多视角可视化 为了克服这一挑战并实现多视角可视化,我们使用了3Dfindit立方体动画模型。博物馆和学生们可以利用 3D 模型提出新的历史教学问题。
    发表于 08-01 14:36

    基于 HT 的 3D 可视化智慧矿山开发实现

    图扑软件 Hightopo 作为基于 HTML5 标准的 2D/3D 图形渲染引擎,为 Web 端矿山可视化提供了轻量化、高性能的技术支撑。其核心价值在于通过自主研发的渲染技术,实现浏览器端无需插件
    的头像 发表于 07-18 15:49 828次阅读
    基于 HT 的 <b class='flag-5'>3D</b> <b class='flag-5'>可视化</b>智慧矿山开发实现

    VirtualLab Fusion应用:3D系统可视化

    描述和F-Theta透镜的应用示例。 光学系统的3D-可视化 VirtualLab Fusion提供的工具可以实现光学系统的3D可视化,因此可以用于检查元件的位置,以及快速了解系统内
    发表于 04-30 08:47