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


这些线 , 最多可以由120个顶点组成 , 因为Unity允许的几何着色器能创建的变量的标量浮点数为1024 。
设计后的网络形状 , 大致长这样:
神经网络可视化有3D版本了,美到沦陷!
文章图片
然后 , 就是从模型的TensorFlow代码中 , 生成对应的3D神经网络图像 。
其中 , Tensorflow-native.ckpt格式的文件 , 需要存储重构模型图所需的数据、二进制的权重读取和激活值 , 以及特定层的名字 。
以Cifar10-greyscale数据集为例 , 需要编写一个检查点(checkpoint)文件 , 以及设置随即初始化的权重 。
神经网络可视化有3D版本了,美到沦陷!
文章图片
在那之后 , 需要加载这些检查点文件、启动TensorFlow会话 , 输入训练示例 , 以便查询每一层的激活函数 。
然后编写一个json文件 , 存储每一层的形状、名称、权重和激活函数 , 便于读取 。 然后使用权重值 , 将颜色数据分配给各层的UnityMesh 。
神经网络可视化有3D版本了,美到沦陷!
文章图片
最终搞出来的效果 , 还是不错的:
神经网络可视化有3D版本了,美到沦陷!
文章图片
作者还录了个开发视频 , 在文末可以找到地址 。
相关研究还不少
事实上 , 此前已经有不少学者 , 进行过神经网络可视化的研究 。
例如 , 去年5月 , 一位中国博士就可视化了卷积神经网络 , 将每一层的变化都展示得非常清楚 , 只需要点击对应的神经元 , 就能看见它的“操作” 。
神经网络可视化有3D版本了,美到沦陷!
文章图片
这是用TensorFlow.js加载的一个10层预训练模型 , 相当于在浏览器上就能跑CNN模型 , 也可以实时交互 , 显示神经元的变化 。
不过 , 这还是个2D的项目 。
目前 , 也已经有人像上面那个神经网络模型一样 , 做出了3D的可视化神经网络:
这个项目 , 同样用到了边绑定、光线追踪等技术 , 与特征提取、微调和归一化相结合 , 将神经网络可视化 。
这项项目希望能借由这些技术 , 来估计神经网络中不同部分的重要性 。
为此 , 作者将神经网络的每一部分都用不同的颜色来表示 , 根据节点和节点在网络中的重要性 , 来预测它们之间的关联性 。
神经网络可视化有3D版本了,美到沦陷!
文章图片
大致的处理过程是这样的:
神经网络可视化有3D版本了,美到沦陷!
文章图片
如果对于这类3D神经网络可视化感兴趣 , 可以在文末找到对应的开源项目地址 。
作者介绍
神经网络可视化有3D版本了,美到沦陷!
文章图片
StefanSietzen , 现居维也纳 , 此前曾是个3D视觉方向的自由职业者 。
目前 , 他在维也纳工业大学读硕 , 对视觉计算(visualcomputing)非常感兴趣 , 这个3D神经网络 , 就是他在硕士期间做的项目之一 。
开发过程:
https://vimeo.com/stefsietz
已开源的3D神经网络项目:
https://github.com/julrog/nn_vis返回搜狐 , 查看更多
责任编辑: