小查晨报奥飞斯量子比特报道| 公众号QbitAI
或许是因为疫情的原因,人们在现实世界的行动受到限制,所以越来越多的人去游戏世界释放自己的本能。
此前举办毕业典礼有《我的世界》,之后举办AI会议有《动物森友会》。最近,《我的世界》被大师引入了硬核玩法。
你觉得他是涂鸦吗?不!事实上,他是做神经网络推理的。
任何熟悉神经网络的人都应该猜到这一点。
照片中的玩家正在运行MNIST 手写数字分类网络。
只需用剑在墙上画数字,神经网络就会识别你写下的数字。不仅如此,在这里你可以清楚地看到神经网络的推理过程中哪些神经元被激活。
这位富有想象力的玩家就是来自印度的年轻人Ashutosh Sathe,他的游戏项目叫做Scarpet-nn。
Sathe不仅发布了试用视频,还开源了代码。《我的世界》 玩家+神经网络炼金术士也可以将自己的网络融入到游戏中。
Scarpet-nn 支持卷积层和全连接层,允许您在一个世界中运行多个神经网络。您还可以查看中间张量的分块激活并同时运行多个神经网络。
Sate 兄弟是如何想到使用《我的世界》 构建神经网络的想法的?
像素风格和神经网络完美匹配。我的世界中的像素色块简直就是一个显示三维数组的神器。如果长方体的每个小块以不同颜色显示一个值,则长方体可以表示张量。
然而,由于Minecraft 地图中的表示范围有限和资源有限,用神经网络显示BERT 显然是不切实际的。
因此,最好用两个色块来表示二元神经网络(BNN)。
BNN 是一种高度简化的神经网络。权重和激活都只能采用两个值:+1 或-1。然而,计算机的二进制位表示是不同的。因此,BNN 将+1 存储为1,将-1 存储为0。
这样,BNN中的乘法运算就变成了逻辑门的异或运算,您可以使用《我的世界》红石电路来构建逻辑门。
至此,使用《我的世界》构建神经网络的理论基础就完成了,开始实际操作。
要使用神经网络到像素转换模块,您的计算机上必须安装Java 版本《我的世界》。还需要第三方模组。该项目需要安装两个mod:Litematica 和Carpetmod。
您还需要通过Python3 安装PyTorch 和nbtlib。
接下来就是“炼丹”了。首先,在PyTorch 中训练二元神经网络。
Litematica 是一个模块,可帮助用户从头开始创建原理图、精确构建结构并指定放置块的位置。
运行modeltolitematica.py 将神经网络的所有层转换为不同的Litematica 图。每个图仅包含神经网络的一层。
在图中,紫色代表+1块,绿色代表-1块。
完成此步骤后,您将拥有一组后缀为.litematica 的原理图文件。文件名与指定的网络层相同,例如conv1.weight.litematica 或fc2.weight.litematica。只需导入相应的文件即可。
当神经网络安装在地面上时,卷积层就变成了4维数组,无法用3维空间来表达,所以还增加了压缩处理。
卷积层的一般形式是[c2,c1,fh,fw]。其中c2是输出激活的通道数,c1是输入激活的通道数,fh和fw是卷积滤波器的高度和宽度。
最后两个维度乘以scalpet-nn得到[c2,c1,fhfw],解决了三维显示问题。
所有全连接层都不能以二维方式查看,也不需要调整。
然后,您可以在打开的空间中绘制16×16 输入图像。
将卷积层导入地图后,您可以执行神经网络操作。
最后,作者还提供了MNIST原理图的MineCraft文件包。如果您想轻松查看实际执行效果,请在公众号回复《我的世界》即可获取。
不得不说《我的世界》的高手太多了。我们曾经有一个复旦的本科生从头开始创建计算机,现在我们有一个印度人从头开始构建神经网络。
(相关文章:用《我的世界》从零开始造一台计算机有多难?复旦硕士花了一年时间努力)
然而,当前模块无法训练神经网络《我的世界》。有这些大师的努力,我想以后用《我的世界》来炼丹也不是梦。
传送门博客地址:https://ashutoshbsathe.github.io/scarpet-nn/scarpet-apps/twoclassmnist/
Litematica下载地址:http://minecraft.curseforge.com/projects/litematica
源代码:https://github.com/ashutoshbsathe/scarpet-nn
– 就这样-
量子比特QbitAI·今日头条签名
关注我们,第一时间了解最新技术动态
本文和图片来自网络,不代表火豚游戏立场,如若侵权请联系我们删除:https://www.huotun.com/game/666220.html