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

点击上方“码农突围”,马上关注

这里是码农充电第一站,回复“666”,获取一份专属大礼包

真爱,请设置“星标”或点个“在看”

郭一璞 发自 云凹非寺
量子位 报道

CNN是什么?美国有线电视新闻网吗?

每一个对AI抱有憧憬的小白,在开始的时候都会遇到CNN(卷积神经网络)这个词。

但每次,当小白们想了解CNN到底是怎么回事,为什么就能聪明的识别人脸、听辨声音的时候,就懵了,只好理解为玄学:

好吧,维基百科解决不了的问题,有人给解决了。

这个名叫CNN解释器在线交互可视化工具,把CNN拆开了揉碎了,告诉小白们CNN究竟是怎么一回事,为什么可以辨识物品。

它用TensorFlow.js加载了一个10层的预训练模型,相当于在你的浏览器上跑一个CNN模型,只需要打开电脑,就能了解CNN究竟是怎么回事。

而且,这个网页工具还可以实现交互,只要点击其中任何一个格子——就是CNN中的“神经元”,就能显示它的输入是哪些、经过了怎样细微的变化。

甚至,连每一次卷积运算都能看得清。

看清卷积

这个CNN解释器的使用方式也非常简单:鼠标戳戳戳就好了。

单击神经元,进入弹性解释视图,就可以看到卷积核滑动的过程的动画模拟:

点击一个正在卷积的过程图,就可以看到更具体的过程:

可以看到底层的卷积运算过程,3×3的卷积核是如何经过运算被变成1个数字的。

看清ReLU和最大池化层

点击一个ReLU层的神经元,可以看具体过程,ReLU函数是这样工作的:

点击一个池化神经元,也可以看具体最大池化层是怎样工作的:

看清CNN是怎么输出预测的

点击最右侧的输出神经元,进入弹性解释视图:

可以查看Softmax函数的详情:

识别「狸克」试试?

CNN解释器默认有10张图片,你也可以增加自己的自定义图片。

比如这个:

芝士焗灯笼椒?灯笼椒披萨?还是什么鬼?

复制图片链接或者上传图片之后,它经过了10层处理,得出结论:

是灯笼椒,但也可能是臭虫。

但是,只能归类于右侧原有的10个品类里,比如放一只狸克:

就会被识别成espresso。

佐治亚理工中国博士出品

最后,这个CNN解释器的作者是一位中国小哥,佐治亚理工的Zijie Wang,去年刚开始读机器学习博士,本科毕业于威斯康星大学麦迪逊分校,是一位GPA 3.95/4.00的大学霸。

他也曾经做过一些其他有趣的数据可视化项目,比如威斯康星大学麦迪逊分校的中国本科生都来自哪里:

传送门

CNN解释器
https://poloclub.github.io/cnn-explainer/

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

论文
https://arxiv.org/abs/2004.15004

---END---

重磅!鱼哥微信好友坑位限时开放啦!

扫码直接加鱼哥微信号,不仅可以围观鱼哥平时所思和复盘的内容。还可以帮你免费内推大厂,技术交流,一起探索职场突围,收入突围,技术突围。一定要备注:开发方向+地点+学校/公司+昵称(如Java开发+上海+拼夕夕+猴子)

▲长按加鱼哥微信,赶紧上车

推荐阅读

•   一次 SQL 查询优化原理分析(900W+ 数据,从 17s 到 300ms)

•   再见,VPN !

•   微信支付的软件架构也太特么牛逼了吧...

•   大厂的 404 页面都长啥样?看到最后一个,我笑了...

•   GitHub 重大更新:在线开发上线,是时候卸载 IDE 了

•   过了35岁你还能干嘛?这是我看过最棒的建议!

欢迎关注我的公众号“码农突围”,如果喜欢,麻烦点一下“在看”~

如有收获,点个在看,诚挚感谢

vivado是一款用于FPGA开发的软件平台,其中包括基于verilog的C语言设计,用于实现各种数字信号处理算法,包括卷积神经网络。在vivado2019.2平台中,实现CNN卷积神经网络通常需要运用verilog硬件描述语言,结合Vivado HLS和Vivado IP Integrator进行设计。具体来说,需要以下三个模块: 1. 卷积层模块 卷积层模块是CNN网络的核心部分。在verilog中,卷积操作可以通过多个乘加器实现,每个乘加器对应卷积核的一个权重值和输入数据的一个像素点。该模块需要实现卷积核的移动以及对应像素点的乘积和,经过加和以后得到卷积结果。最终输出经过ReLU (rectified linear unit)激活函数的值。 2. 最大化池化层模块 最大池化层用于下采样输入数据。在verilog中,可以通过取输入数据片段中元素的最大值的方式实现最大池化操作。这个模块的主要任务是在输入数据中选取指定大小的数据块,然后输出选定区域中的最大值。 3. ReLU模块 ReLU模块是卷积神经网络中的激活函数。在verilog中,每一个像素点的值需要和一个阈值比较。如果大于该阈值,则输出像素点的原值,否则输出0。 总结来说,在vivado2019.2平台中,通过verilog实现CNN卷积神经网络需要编写卷积层、最大化池化层以及激活函数的模块,并使用Vivado HLS和Vivado IP Integrator进行IP核的集成和系统级设计的实现。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值