keras中的keras.utils.to_categorical方法
参考链接:https://blog.csdn.net/nima1994/article/details/82468965
参考链接:https://blog.csdn.net/gdl3463315/article/details/82659378
to_categorical(y, num_classes=None, dtype=‘float32‘)
将整型的类别标签转为onehot编码。y为int数组,num_classes为标签类别总数,大于max(y)(标签从0开始的)。
返回:如果num_classes=None,返回len(y) * [max(y)+1](维度,m*n表示m行n列矩阵,下同),否则为len(y) * num_classes。
- import keras
- ohl=keras.utils.to_categorical([1,3])
- # ohl=keras.utils.to_categorical([[1],[3]])
- print(ohl)
- """
- [[0. 1. 0. 0.]
- [0. 0. 0. 1.]]
- """
- ohl=keras.utils.to_categorical([1,3],num_classes=5)
- print(ohl)
- """
- [[0. 1. 0. 0. 0.]
- [0. 0. 0. 1. 0.]]
- """
该部分keras源码如下:
- def to_categorical(y, num_classes=None, dtype=‘float32‘):
- """Converts a class vector (integers) to binary class matrix.
- E.g. for use with categorical_crossentropy.
- # Arguments
- y: class vector to be converted into a matrix
- (integers from 0 to num_classes).
- num_classes: total number of classes.
- dtype: The data type expected by the input, as a string
- (`float32`, `float64`, `int32`...)
- # Returns
- A binary matrix representation of the input. The classes axis
- is placed last.
- """
- y = np.array(y, dtype=‘int‘)
- input_shape = y.shape
- if input_shape and input_shape[-1] == 1 and len(input_shape) > 1:
- input_shape = tuple(input_shape[:-1])
- y = y.ravel()
- if not num_classes:
- num_classes = np.max(y) + 1
- n = y.shape[0]
- categorical = np.zeros((n, num_classes), dtype=dtype)
- categorical[np.arange(n), y] = 1
- output_shape = input_shape + (num_classes,)
- categorical = np.reshape(categorical, output_shape)
- return categorical
简单来说:**keras.utils.to_categorical函数:是把类别标签转换为onehot编码(categorical就是类别标签的意思,表示现实世界中你分类的各类别), 而onehot编码是一种方便计算机处理的二元编码。**
相关推荐
xiaoxiaokeke 2020-11-04
KyrieHe 2020-10-04
davidsmith 2020-09-04
GDGYZL 2020-08-28
comwayLi 2020-08-16
xiaoxiaokeke 2020-08-04
xiaoxiaokeke 2020-07-28
诗蕊 2020-07-20
dataastron 2020-07-18
Niteowl 2020-07-15
zhongkeli 2020-07-14
xiaoxiaokeke 2020-06-27
dataastron 2020-06-25
xiaoxiaokeke 2020-06-25
CodeWang 2020-06-21
xiaoxiaokeke 2020-06-16
zhongkeli 2020-06-14
lujiandong 2020-06-14