适用于 Minecraft 1.12 的 NeuralNetworkAPI 插件
一个用于将神经网络添加到 Minecraft 的 bukkit 插件。
关于 NeuralNetworkAPI 插件
NeuralNetworkAPI
一个用于将神经网络添加到 Minecraft 的 Bukkit 插件。
使用方法(基础演示)
- 首先,使用 /nn cnn 或 /nn createNewNN 查看所有神经网络类型的列表。我建议先从 LogicalOR 开始。
- 然后,使用 /nn startlearning 开始训练神经网络。
- 发送该命令后几乎立即使用 /nn stoplearning 停止训练。在发送这两条命令的几秒内,机器人已经经历了上千个场景,应该达到 100% 准确率。(对于其他神经网络,你可以通过查看控制台来检查准确率。)
- 现在,要测试它,使用 /nn test 来测试两个输入,可以是 true 或 false。(例如:/nn test true false)
- 对于 LogicalOR,如果第一个和/或第二个输入为 true,它应该输出 true。
对于非开发者
除了几个展示此 API 能实现什么功能的演示之外,这个插件本身不提供任何内容。如果你不打算开发自己的 NeuralNetwork 插件,或使用另一个使用此 API 的插件,那么这个插件对你可能没有用处。
对于插件开发者
在尝试创建新的神经网络类型之前,有几件事你应该了解。
- 示例包提供了许多关于如何创建神经网络的示例。逻辑门神经网络应该是最容易理解的。
- 默认情况下,所有继承 NNBaseEntity 的神经网络都会自动实现 ConfigurationSerializable。但是,为了让 Bukkit 能够从配置中加载这些值,你需要像这样为该类创建一个新的构造函数:
public CustomNeuralNetwork(Map<String,Object> map){ super(map); }
……并让 ConfigurationSerialization 类在主类的 onEnable 或 onLoad 中注册该对象,如下所示:
public void onEnable(){ ConfigurationSerialization.registerClass(CustomNeuralNetwork.class); }
- 完成这些之后,你应该能够将 NNBaseEntity 保存到配置中以及从配置中加载。请注意,你不能将 NeuralNetwork 实例保存到配置中。
- 理想情况下,你插件的其他部分都不应直接引用你的自定义神经网络对象。相反,对该对象的所有调用都应通过 NeuralNetwork 对象完成。
- 为了获得最佳效果,仅在神经网络以任何方式失败时才调用 DeepReinformentUtil.instantaneousReinforce。在它返回正确值时调用它,往往会让它“忘记”可能已经学到的东西。
- 此 API 仍在开发中。此插件的某些方面可能会在未来的更新中发生变化。请持续查看 GitHub 页面以获取更新,并确保你的项目始终引用最新版本。
- 在训练你的 NeuralNetwork 时,如果你不希望控制台被调试消息填满,请使用 NeuralNetworksetBroadcasting(false); 来禁用控制台调试。
- 如果你的 AI 没有返回你期望的值,或者想知道你的神经网络在给定输入时“在想什么”,你可以打开 grapher 来可视化正在发生的事情。使用 NeuralNetworkopenGrapher(); 打开 grapher 实例。完成后,你可以使用 NeuralNetworkcloseGrapher(); 正确关闭窗口。
- 向你的神经网络添加更多隐藏层会增加它可以学习的模式的复杂度。
- 在某些情况下,拥有 BiasNeuron 可能会增强或削弱网络的学习能力。对于在没有输入时仍需要某些输出的情况(例如 XNOR、NAND、Inverted),最好在输入中至少有 1 个偏置神经元。
- 在隐藏层上设置 BiasNeuron 可能对某些情况有帮助,也可能没有帮助。
工作原理
神经网络从三个基本组件开始:一个 Sensory 数组、一个 AI 对象和一个 Controler 对象。
- Sensory 数组决定输入。这可以是布尔值,表示 true 或 false 值,也可以是表示输入可能状态的数字。
- AI 负责将输入转换为输出。通过一系列各自拥有值和阈值的神经元,信息会根据神经网络的训练方式从输入传递到输出。
- Controler 是你将输出转换为你可用数据的方式。例如,controler 可以将输出转换为布尔值,用于判断 AI 是否在脏话过滤器中检测到脏话,或者判断两个整数的和。
GitHub 页面:
https://github.com/ZombieStriker/NeuralNetworkAPI
此插件使用 bStats 收集统计数据:
Bestats 仅收集有关你的系统架构、服务器版本和插件版本的信息。如果你确实不希望发送任何此类信息,可以通过进入配置并将 "enableStats" 设置为 false 来禁用 bstats。
如何安装 NeuralNetworkAPI
A server on Paper or Spigot
The plugin runs on the server core for Minecraft 1.8.1–1.12; players do not need to install anything.
File goes into the plugins folder
Download the file NeuralNetworkAPI.jar (183 KB) and put it into the server’s plugins folder.
Restart the server
On startup the plugin creates its own settings folder in plugins.
Use the “To server” button
On Millida Hosting, the button at the top of the page uploads the file to your server and restarts it for you.
Minecraft 1.12 runs on Java 8: with a different Java version the game may close right after launch.
版本
含依赖项
| Minecraft | 加载器 | 文件 | 日期 | 操作 |
|---|---|---|---|---|
| 1.11 | — | NeuralNetworkAPI V1.0.6183 KB |
常见问题
Which Minecraft versions does NeuralNetworkAPI work on?
There are files for 1.12, 1.11, 1.10, 1.8.1. The newest is 1.12.
Do players need to install NeuralNetworkAPI?
No, the plugin goes only on the server, into the plugins folder: players do not need to download anything.
Which Java does NeuralNetworkAPI need?
Minecraft 1.12 runs on Java 8. If the game closes right after launch, the usual cause is the wrong Java version in the profile settings.
Where can I download NeuralNetworkAPI safely?
On this page: the file NeuralNetworkAPI.jar (183 KB) is stored on Millida’s server, with no link shorteners. SHA-1 checksum: ddba585e5cd50b96f0dc93c2d7523657b9273b43.
评价
成为第一个评价 NeuralNetworkAPI 的人



