【深度学习】有个洋人小哥把整个 CNN 都给可视化了,卷积、池化清清楚楚!...
最近,有个项目在社交媒体上火起来了,项目作者是来自维也纳的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
往期精彩回顾适合初学者入门人工智能的路线及资料下载机器学习及深度学习笔记等资料打印机器学习在线手册深度学习笔记专辑《统计学习方法》的代码复现专辑
AI基础下载机器学习的数学基础专辑
本站qq群851320808,加入微信群请扫码:
【深度学习】有个洋人小哥把整个 CNN 都给可视化了,卷积、池化清清楚楚!...相关推荐
- 一位外国小哥把整个 CNN 都给可视化了,卷积、池化清清楚楚!网友:美得不真实......
编辑丨量子位 做计算机视觉,离不开CNN. 可是,卷积.池化.Softmax--究竟长啥样,是怎样相互连接在一起的? 对着代码凭空想象,多少让人有点头皮微凉.于是,有人干脆用Unity给它完整3D可视 ...
- 2021-06-23对深度学习模型进行更小,更快,更好的综述——微软研究院
高效的深度学习:对深度学习模型进行更小,更快,更好的调查综述 摘要 一.引言 高效的深度学习 二.五个主要方面提升模型效率 2.1 压缩技术 2.2 学习技术 2.2 自动化 2.4 高效的架构 2. ...
- 深度学习(2)--小总结(指数加权平均值,偏差修正,momentum梯度下降,学习率衰减,batch归一化与BN层)
网易云课堂吴恩达深度学习微专业相关感受和总结.因为深度学习较机器学习更深一步,所以记录机器学习中没有学到或者温故知新的内容. 闲来复习,可以学到很多东西! 上一篇:深度学习(1)--小总结(验证训练. ...
- 基于深度学习的轴承故障识别-构建基础的CNN模型
上回书说到,处理序列的基本深度学习算法分别是循环神经网络(recurrent neural network)和一维卷积神经网络(1D convnet).上篇构建了基础的LSTM模型,这一篇自然轮到CN ...
- 【神经网络与深度学习-TensorFlow实践】-中国大学MOOC课程(十四)(卷积神经网络))
[神经网络与深度学习-TensorFlow实践]-中国大学MOOC课程(十四)(卷积神经网络)) 14 卷积神经网络 14.1 深度学习基础 14.1.1 深度学习的基本思想 14.1.2 深度学习三 ...
- 深度学习(二十五)基于Mutil-Scale CNN的图片语义分割、法向量估计-ICCV 2015
基于Mutil-Scale CNN的图片语义分割.法向量估计 原文地址:http://blog.csdn.net/hjimce/article/details/50443995 作者:hjimce 一 ...
- 深度学习(二十五)基于Mutil-Scale CNN的图片语义分割、法向量估计
基于Mutil-Scale CNN的图片语义分割.法向量估计 原文地址:http://blog.csdn.net/hjimce/article/details/50443995 作者:hjimce 一 ...
- 深度学习 英文 训练阶段_半监督深度学习训练和实现小Tricks
临近毕业,忽然想实现一下一些比较经典的半监督深度学习算法.恰逢一周前有个师妹问我有没有关于半监督深度学习训练技巧的文章,我一想,好像没有,便想自己写一篇. Talk is cheap, show yo ...
- vs xgb 神经网络_业界 | 深度学习与XGBoost在小数据集上的测评,你怎么看?(附源码)...
作者:Max Brggen机器之心编译参与:蒋思源 近来,部分机器学习从业者对深度学习不能训练小数据集这一观点表示怀疑,他们普遍认为如果深度学习经过优良的调参,那么就不会出现过拟合和过训练情况,也就能 ...
最新文章
- 堪称为经典游戏设计帖整理20个点击回复超高的精品贴
- 软件行业里学历和资历哪个更重要?
- 用户空间与内核空间,进程上下文与中断上下文[总结]
- 上银伺服驱动器接线图_伺服驱动器实际接线方法详解
- 《计算机视觉:模型、学习和推理》一3.6 正态逆伽马分布
- centos php imap,centos 5.5 64 php 添加imap 模块记录
- python vars name报错_Python vars()全局名称错误
- STM32 SPI详解
- html5新的dom函数,从0到1: 实现一个虚拟 DOM(上)
- 在word表格里打勾和打叉
- 分享常见的视频加密算法原理及其优缺点
- 3.Orangepi PC2 使用busybox制作文件系统
- 1021 Deepest Root (25 分)连通图个数、图的遍历dfs
- EXSI6怎么设置虚拟机从光驱启动
- XM 玻璃钢一体化泵站特点及使用寿命
- JS 计算时间差(月份差、天数差)
- 那些年我们在python掉进的坑系列之一pandas的to_sql
- 第104篇 Compound 中的 cTokens
- 黑苹果热补丁hotpatch来禁用笔记本独显
- vscode latex 字数统计
热门文章
- Rhythmk 学习 Hibernate 08 - Hibernate annotation 关联关系注解
- Ocr技术 识别高级验证码
- PHP扩展-扩展的生成和编译
- 2016/07/11 常用正则表达式大全 (转)
- Linux及安全课程——相关链接总结
- 【OpenCV】将RGB图像转为灰度图
- 如何计算机械能,问:损失的机械能如何计算?
- opencv均值滤波_python+opencv图像处理(二十)
- C语言 | 快排双向扫描:快速排序双向扫描分区法(源代码)
- 北斗导航 | Satellite Communications Toolbox——MATLAB2021a卫星通信工具箱(附代码)