[Unity Sentis] 了解 Sentis 中的模型

英文原文:https://docs.unity3d.com/Packages/[email protected]/manual/models-concept.html

了解 Sentis 中的模型

Sentis 可以导入并运行开放神经网络交换 (ONNX) 格式的经过训练的机器学习模型文件。

要获得与 Sentis 兼容的模型,您可以执行以下操作之一:

  • 在 TensorFlow、PyTorch 或 Keras 等框架中训练模型,然后以 ONNX 格式导出。
  • 下载经过训练的模型文件并将其转换为 ONNX 格式。有关更多信息,请参阅 ONNXXMLTools Python 包。
  • 下载已采用 ONNX 格式的经过训练的模型,例如从 ONNX Model Zoo 下载。

Sentis 如何优化模型

导入模型时,模型图中的每个 ONNX 运算符都会成为一个 Sentis 层。

打开模型资源导入设置以检查导入模型中的层列表(按照 Sentis 运行它们的顺序)。有关更多信息,请参阅支持的 ONNX 运算符。

Sentis 优化模型,使其更小、更高效。例如,Sentis 可能会对导入的模型执行以下操作:

  • 删除一个层或子图并将其变成一个常数。
  • 将图层或子图替换为工作方式相同的更简单的图层或子图。
  • 如果必须在推理时读取数据,请设置一个在 CPU 上运行的层。

优化不会影响模型的输入或输出。

要停用优化,请选择导入的模型资产,然后在“模型资产导入设置”窗口中停用优化模型。

模型输入

模型的输入尺寸可以是固定的,也可以是动态的。

当您检查模型以获取其输入时,输入形状中的每个维度都会显示以下内容之一:

  • 表示固定维度的数字,例如 (1)。这意味着您的输入张量应使用相同的维度大小,因为 Sentis 会针对该大小优化模型。
  • 表示动态维度的问号或字符串,例如 (?) 或 (batch)。这意味着输入张量形状是符号性的,并且您的输入张量可以使用任何维度大小。

如果模型使用具有动态形状的输入,Sentis 可能无法像使用固定输入维度的模型那样有效地优化模型。这可能会减慢模型的速度。

你可能感兴趣的:(人工智能,Unity,unity,人工智能)