原文链接:https://github.com/Unity-Technologies/ml-agents/blob/master/docs/Background-TensorFlow.md
背景:TensorFlow
正如我们的机器学习背景页面中所讨论的那样,我们在ML-Agents中提供的许多算法都利用某种形式的深度学习。更具体地说,我们的实现建立在开源库TensorFlow之上。这意味着ML-
代理(当前)产生的模型格式只能被TensorFlow理解。在这个页面中,我们提供了TensorFlow的简要概述,以及我们在ML-Agents中使用的与TensorFlow相关的工具。
TensorFlow
TensorFlow是一个开源库,用于使用数据流图(深度学习模型的基本表现)进行计算。它有助于基于在桌面,服务器或移动设备上的CPU和GPU进行训练和推理。在ML-Agents中,当您训练Agent的行为时,输出是一个TensorFlow模型(.bytes)文件,您可以将其嵌入到内部Brain中。除非你引入一个新的算法,TensorFlow的大部分用法都是在幕后抽象出来的。
TensorBoard
使用TensorFlow的训练模型的一个组成部分是设置某些模型属性(称为超参数)的值。找到这些超参数的正确值可能需要一些迭代。所以,
我们利用称为TensorBoard的TensorFlow中的可视化工具。它允许在整个训练过程中对特定代理属性(例如奖励)进行可视化,这有助于为不同的超参数构建直觉并为Unity环境设置最佳值。
我们在文档的后面部分提供了有关设置超参数的更多详细信息,但同时,如果您不熟悉TensorBoard,我们推荐该教程。
TensorFlowSharp
TensorFlow的缺点之一是它不提供原生的C#API。
这意味着由于Unity脚本是用C#编写的,因此内部Brain不被原生支持。因此,为了启用内部Brain,我们利用了第三方库TensorFlowSharp,它为TensorFlow提供了.NET绑定。因此,当构建了包含内部Brain的Unity环境,
推断会通过TensorFlowSharp进行。我们提供了关于如何在Unity中利用TensorFlowSharp的更深入的概述,一旦您在ML-Agents中安装并开始训练行为,它将变得更加相关。鉴于对TensorFlowSharp的依赖,内部Brain目前被标记为实验性的。