mindspore.dataset.transforms.OneHot
- class mindspore.dataset.transforms.OneHot(num_classes, smoothing_rate=0.0)[source]
Apply One-Hot encoding to the input labels.
For a 1-D input of shape
, an output of shape will be returned, where the elements with index values equal to the input values will be set to 1, and the rest will be set to 0. If a label smoothing rate is specified, the element values are further smoothed to enhance generalization.- Parameters
- Raises
TypeError – If num_classes is not of type int.
TypeError – If smoothing_rate is not of type float.
ValueError – If smoothing_rate is not in range of [0.0, 1.0].
RuntimeError – If input label is not of type int.
RuntimeError – If the dimension of the input label is not 1.
- Supported Platforms:
CPU
Examples
>>> import numpy as np >>> import mindspore.dataset as ds >>> import mindspore.dataset.transforms as transforms >>> >>> # Use the transform in dataset pipeline mode >>> data = [1, 2, 3, 4, 5, 6, 7, 8] >>> numpy_slices_dataset = ds.NumpySlicesDataset(data, ["label"]) >>> >>> # Assume that dataset has 10 classes, thus the label ranges from 0 to 9 >>> onehot_op = transforms.OneHot(num_classes=10) >>> numpy_slices_dataset = numpy_slices_dataset.map(operations=onehot_op, input_columns=["label"]) >>> for item in numpy_slices_dataset.create_dict_iterator(num_epochs=1, output_numpy=True): ... print(item["label"].shape, item["label"].dtype) ... break (10,) int64 >>> >>> # Use the transform in eager mode >>> data = np.array([1, 2, 3]) >>> output = transforms.OneHot(num_classes=5, smoothing_rate=0)(data) >>> print(output.shape, output.dtype) (3, 5) int64