用于具有多输入和多输出的游戏 AI 的 CoreML
Posted
技术标签:
【中文标题】用于具有多输入和多输出的游戏 AI 的 CoreML【英文标题】:CoreML for Game AI with multiple inputs and multiple outputs 【发布时间】:2019-01-21 01:28:22 【问题描述】:我正在玩 2D 游戏,我希望 AI 敌人在某些情况下追逐/攻击/避开主角。
我一直在思考 AI 需要做什么:
-
处理它可以看到的内容
向上、向下、向左、向右移动
攻击
鉴于 CoreML 的突出地位,我是否可以构建一个 *.mlmodel,它可以接收例如场景图片和其他一些输入,并输出五条消息,例如,上、下、左、右、攻击
我认为它的工作方式是,对于游戏的每一帧:
-
获取输入
发送到 CoreML 进行处理
CoreML 返回所有 5 个输出
敌方 AI,操作这些输出。
这是 CoreML 可以处理的吗?
【问题讨论】:
【参考方案1】:是的,Core ML 可以做到这一点。然而,这里真正的问题不是 Core ML,而是创建(训练)模型。
另外,对于你的游戏来说,只使用少量的敌方 AI 规则可能比使用机器学习模型更容易——而且速度更快。
【讨论】:
【参考方案2】:虽然可以在适当的情况下训练机器学习模型来执行这些操作,但我相信 GameplayKit 更接近您的目标。
具体来说,你描述的追逐/攻击/回避动作与几年前"DemoBots" sample code project中的动作相似。那应该是一个很好的起点。 Deeper into GameplayKit with DemoBots WWDC video 也可能是一个很好的资源。
【讨论】:
以上是关于用于具有多输入和多输出的游戏 AI 的 CoreML的主要内容,如果未能解决你的问题,请参考以下文章
深度学习入门基础CNN系列——感受野和多输入通道多输出通道以及批量操作基本概念