2025年conv1D(conv1d输入数据格式要求)

conv1D(conv1d输入数据格式要求)p 机器学习模型具有输入和输出特征 用于将信息传入和传出模型 p 将模型加载为 LearningMode 后 可以使用 LearningMode InputFeature 和 LearningMode OutputFeatur 来获取 ILearningMod 对象

大家好,我是讯享网,很高兴认识大家。



 </nav><p>机器学习模型具有输入和输出特征,用于将信息传入和传出模型。</p> 

讯享网

将模型加载为 LearningModel 后,可以使用 LearningModel.InputFeatures 和 LearningModel.OutputFeatures 来获取 ILearningModelFeatureDescriptor 对象。 它们列出了模型的预期输入和输出特征类型。

可以使用 LearningModelBinding 将值绑定到某个特征,通过 Name 属性引用 ILearningModelFeatureDescriptor

以下视频提供了有关绑定机器学习模型特征的简要概述。


Windows ML 支持所有 ONNX 特征类型,LearningModelFeatureKind 中枚举了这些类型。 它们映射到不同的特征描述符类:

  • 张量:TensorFeatureDescriptor
  • 序列:SequenceFeatureDescriptor
  • 映射:MapFeatureDescriptor
  • 图像:ImageFeatureDescriptor

张量是多维数组,最常见的张量是 32 位浮点数的张量。 张量的维是行优先的,包含表示每个维的紧密打包的连续数据。 张量的总大小是每个维的大小的乘积。

序列是值的向量。 序列类型的一个常见用法是浮点数概率向量,一些分类模型返回该向量来指示每次预测的准确度等级。

映射是信息的键/值对。 分类模型通常返回一个字符串/浮点数映射,该映射描述所标记的每个分类名称的浮点数概率。 例如,尝试预测图片中狗的品种的模型输出可能是 。

标量

大多数映射和序列都具有标量值。 当 TensorFeatureDescriptor.Shape.Size 为零 (0) 时会显示这些值。 在这种情况下,映射或序列将是标量类型的。 最常见的是 。 例如,字符串到浮点数映射将是:

讯享网

实际的映射特征值将是 。

映射序列

映射序列恰好是键/值对的一个向量。 例如,字符串到浮点数映射的序列是 类型的。 上面的狗品种预测输出 就是一个映射序列示例。


讯享网

当处理图像时,你需要知道图像格式和张量化。

图像格式

模型是使用图像训练数据训练的,并且会为该训练集保存和定制权重。 将图像输入传递到模型时,其格式必须与训练图像的格式相匹配。

在许多情况下,模型会描述预期的图像格式;ONNX 模型可以使用元数据描述预期的图像格式。

大多数模型使用以下格式,但这并非通用于所有模型:

  • Image.BitmapPixelFormat:Bgr8
  • Image.ColorSpaceGamma:SRGB
  • Image.NominalPixelRange:NominalRange_0_255

张量化

图像在 Windows ML 中以张量格式表示。 张量化是指将图像转换为张量的过程,并且发生在绑定期间。

Windows ML 采用“NCHW 张量格式”将图像转换为 32 位浮点数的 4 维张量:

  • N:批大小(或图像数)。 Windows ML 当前支持的批大小 N 为 1。
  • C:通道计数(1 表示 Gray8,3 表示 Bgr8)
  • H:高度
  • W:宽度

图像的每个像素都是一个 8 位的颜色编号,存储在 0-255 范围内,并打包为 32 位浮点数。

如何将图像传递到模型

可以通过两种方法将图像传递到模型:

  • ImageFeatureValue

    我们建议使用 ImageFeatureValue 将图像绑定为输入和输出,因为它同时处理转换和张量化,因此图像与模型所需的图像格式匹配。 当前支持的模型格式类型为 Gray8Rgb8Bgr8,当前支持的像素范围为 0-255。

    可以使用静态方法 ImageFeatureValue.CreateFromVideoFrame 创建 ImageFeatureValue

    为了找出模型需要的格式,WinML 使用以下逻辑和优先顺序:

    1. Bind(String, Object, IPropertySet) 将替代所有图像设置。
    2. 然后,将检查并使用模型元数据(如果可用)。
    3. 如果未提供模型元数据,并且没有调用方提供的属性,则运行时将尝试进行**匹配。
    • 如果张量看起来像 NCHW (4 维 float32, N==1),则运行时将采用 Gray8 (C==1) 或 Bgr8 (C==3),具体取决于通道计数。
    • 采用 NominalRange_0_255
    • 采用 SRGB

    有多个可以传递到 Bind(String, Object, IPropertySet) 的可选属性:

    • BitmapBounds:如果指定,则它们是在将图像发送到模型之前要应用的剪裁边界。
    • BitmapPixelFormat:如果指定,则这是在图像转换期间将用作模型像素格式的像素格式。

    对于图像形状,模型可以指定它采用的特定形状(例如,SqueezeNet 采用 224,224),模型还可以为任何形状图像指定自由尺寸(许多 StyleTransfer 类型的模型可以采用可变大小的图像)。 调用方可以使用 BitmapBounds 来选择要使用图像的哪一部分。 如果未指定,则运行时会将图像缩放到模型大小(保持纵横比),然后居中裁剪。

  • TensorFloat

    如果 Windows ML 不支持模型的颜色格式或像素范围,则你可以实现转换和张量化。 你将为输入值的 32 位浮点数创建 NCHW 四维张量。 有关如何执行此操作的示例,请参阅自定义张量化示例。

    使用此方法时,将忽略模型上的任何图像元数据。

以下示例展示了如何绑定到模型的输入。 在本例中,我们从会话创建一个绑定,基于 inputFrame 创建一个 ImageFeatureValue,并将图像绑定到模型的输入 inputName

 

  • 上一篇:创建会话
  • 下一篇:评估模型输入





小讯
上一篇 2025-05-10 07:26
下一篇 2025-04-30 08:13

相关推荐

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容,请联系我们,一经查实,本站将立刻删除。
如需转载请保留出处:https://51itzy.com/kjqy/144314.html