mindspore.dataset.transforms.OneHot

查看源文件
class mindspore.dataset.transforms.OneHot(num_classes, smoothing_rate=0.0)[源代码]

对输入标签进行OneHot编码。

对于 shape 为 \((*)\) 的 1 维输入,将返回 shape 为 \((*, num_classes)\) 的输出,其中输入值对应的索引位置处的元素值为 1 ,其余 位置值为 0 。若指定了标签平滑系数,还将进一步平滑各元素值,增强泛化能力。

参数:
  • num_classes (int) - 标签类别总数。需大于输入标签值的最大值。

  • smoothing_rate (float,可选) - 标签平滑系数。取值需在[0.0, 1.0]之间。默认值: 0.0 ,不进行标签平滑。

异常:
  • TypeError - 当 num_classes 不为int类型。

  • TypeError - 当 smoothing_rate 不为float类型。

  • ValueError - 当 smoothing_rate 的取值不在[0.0, 1.0]范围中。

  • RuntimeError - 输入标签不为int类型。

  • RuntimeError - 输入标签的维数不为1。

支持平台:

CPU

样例:

>>> import mindspore.dataset as ds
>>> import mindspore.dataset.transforms as transforms
>>>
>>> mnist_dataset_dir = "/path/to/mnist_dataset_directory"
>>> mnist_dataset = ds.MnistDataset(dataset_dir=mnist_dataset_dir)
>>>
>>> # Assume that dataset has 10 classes, thus the label ranges from 0 to 9
>>> onehot_op = transforms.OneHot(num_classes=10)
>>> mnist_dataset = mnist_dataset.map(operations=onehot_op, input_columns=["label"])