最近,有个项目在社交媒体上火起来了,项目作者是来自维也纳的3D特效师。

创建这样一个CNN可视化工具,是它在硕士论文完成,因为当初学的就是神经网络,学的过程中很难明白卷积层之间是如何相互连接,又如何与不同类型的层连接的。

所以创建这个项目,主要能让此工具的主要功能包括,卷积、最大池化和完全连接层的可视化表示,还有各种能实现更清晰可视化的简化机制等等。

发布这个自己学习成功成果,就是想让初学者通过最直观的方式,来get到CNN的重点,也让人更多深刻的了解明白!

怎么用Unity搞出一个3D网络

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

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

提前,预设好神经网络的“形状”,由于之前并没有用过Unity,作者先学习了着色器和过程式几何相关的知识。

这里面,作者发现了一些局限性,他采用的是Unity为着色器开发的语言Shaderlab。

这个语言无法使用着色变化,只有对语义进行预定义的变量,才能让它在顶点、几何和像素着色器之间传递。

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

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

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

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

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

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

随后编写一个json文件,存储每一层的形状、名称、权重和激活函数,便于读取。

最终展示的效果,看起来是让人容易读懂!

这个项目可不止这国外的小哥想到演示,就在去年时候,一位中国博士就可视化了卷积神经网络,也是每一层的变化都展示得非常清楚,如下图显示那样!

而且在GitHub上星标的5千2星星,热度还行,这个项目,同样用到了边绑定、光线追踪等技术,与特征提取、微调和归一化相结合,将神经网络可视化。

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

如果你对这类3D神经网络可视化感兴趣,可以去小编给的GitHub上项目了解相关详情哦!

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

已开源的3D神经网络项目:

https://github.com/julrog/nn_vis

中国版的神经网络项目

https://github.com/poloclub/cnn-explainer

参考链接:
https://www.reddit.com/r/MachineLearning/comments/leq2kf/d_convolution_neural_network_visualization_made/
https://mp.weixin.qq.com/s/tmx59J75wuRii4RuOT8TTg
https://vimeo.com/stefsietz
http://portfolio.stefansietzen.at/
http://visuality.at/vis2/detail.html

往期精品(点击图片直达文字对应教程)

机器学习

后台回复“生信宝典福利第一波”或点击阅读原文获取教程合集

外国小哥,把整个 CNN 都给可视化了,卷积、池化清清楚楚!相关推荐

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

    编辑丨量子位 做计算机视觉,离不开CNN. 可是,卷积.池化.Softmax--究竟长啥样,是怎样相互连接在一起的? 对着代码凭空想象,多少让人有点头皮微凉.于是,有人干脆用Unity给它完整3D可视 ...

  2. 【深度学习】有个洋人小哥把整个 CNN 都给可视化了,卷积、池化清清楚楚!...

    最近,有个项目在社交媒体上火起来了,项目作者是来自维也纳的3D特效师. 创建这样一个CNN可视化工具,是它在硕士论文完成,因为当初学的就是神经网络,学的过程中很难明白卷积层之间是如何相互连接,又如何与 ...

  3. 萌妹子变脸奥巴马!外国小哥微调StyleGAN2和FFHQ,真人视频秒变卡通视频

    点击上方"机器学习与生成对抗网络",关注"星标" 获取有趣.好玩的前沿干货!   新智元报道   来源:reddit等 编辑:QJP [新智元导读]近日,red ...

  4. 千年一瞬,兵马俑竟眨眼了!外国小哥用AI复原了他

    ‍ 来源:新智元本文为约1416字,建议阅读3分钟 本文介绍了外国博主借用AI技术让秦代兵马俑「活了过来」 千年一瞬,他们眨眼的瞬间,仿佛历史重演. 前不久,外国博主Panagiotis Consta ...

  5. 本周AI热点回顾:动森首届「AI 顶会」即将召开、《我的世界》里搭建神经网络、一位中国博士把整个CNN都给可视化了

    01 重要通知:动物森友会首届「AI 顶会」ACAI 2020即将召开 众所周知,因为疫情的原因,ICML.ICLR.CVPR 等人工智能顶级会议都已经改为了线上举办. 自从 AAAI 2020 之后 ...

  6. 外国小哥恶搞:用ESP32单片机伪装成GPU,让朋友电脑中“勒索病毒

    丰色 发自 凹非寺 量子位 | 公众号 QbitAI "你的电脑已被BIOS Root Kit病毒感染." "所有文件都已被加密." "关机和重启都没 ...

  7. 买不到“震楼神器”的外国小哥,用Arduino编了一个

    丰色 发自 凹非寺 量子位 报道 | 公众号 QbitAI 深更半夜,当邻居吵架.蹦迪.小孩哭闹把你吵得睡不着的时候,你是怎么处理的? 去敲门?带耳塞?默默忍受到神经衰弱? 国外一位小哥被楼上的邻居吵 ...

  8. 外国小哥总结各国旅行好用App,中国区榜首心服口服

    西雅图IT圈:seattleit [今日作者] PowerBall选号机 身体和灵魂总有一个要 走在买PowerBall的路上 2018年余额不足100天,是不是离小目标越来越远了?没关系,年底将至最 ...

  9. 一位中国博士把整个 CNN 都给可视化了,可交互有细节,每次卷积 ReLU 池化都清清楚楚...

    郭一璞 发自 云凹非寺 量子位 报道 | 公众号 QbitAI CNN是什么?美国有线电视新闻网吗? 每一个对AI抱有憧憬的小白,在开始的时候都会遇到CNN(卷积神经网络)这个词. 但每次,当小白们想 ...

最新文章

  1. TCP/IP 校验和算法简介
  2. c语言 集中上机题目,C语言集中上机题目.doc
  3. ibm收购red hat_IBM将收购Red Hat:面向Java的初衷
  4. Python 数据分析三剑客之 Matplotlib(二):文本描述 / 中文支持 / 画布 / 网格等基本图像属性
  5. Intellij IDEA中分屏显示方法
  6. word2vec python 代码实现_python gensim使用word2vec词向量处理中文语料的方法
  7. dubbo+zookeeper与 eureka的区别
  8. 解决Eclipse,MyEclipse出现An error has occurred,See error log for more details的错误
  9. 【C++】演讲比赛流程管理系统
  10. Windows7安装java
  11. html 如何清除历史记录,如何删除网页历史记录?
  12. PageHelper.startPage()使用问题:,以及利用PageInfo和Page手动分页
  13. Edwin 的基本使用
  14. delphi低级键盘钩子(delphi2009测试通过)
  15. 白痴qwerta的胡言乱语(一句话日度感想?
  16. shell的转义字符
  17. 解决Chrome自带翻译功能无法使用问题
  18. 栋的月结 | 第二回合(定期更新、动态、架构、云技术、算法、后端、前端、收听/收看、英文、书籍、影视、好歌、新奇)[含泪总结.. 憋泪分享!]
  19. 羽扇纶巾 雄姿英发 中国历史上的十大儒将
  20. 嵌入式开发教程哪家好?云计算培训如何学?

热门文章

  1. 作者:肖戎(1974-),女,广东省地方税务局高级工程师、副处长。
  2. 【项目管理】IT项目成功
  3. 【面向对象】可变对象和不可变对象
  4. 【计算机网络】Quiz集合
  5. Python中eval与exec的使用及区别
  6. 初识MongoDB(四)
  7. UIActivityViewController实现系统原生分享
  8. Spring jdbc Template和Spring 事务管理
  9. Node.js小Httpserver
  10. linux下C调用lua的第一个程序