浅谈keras中的keras.utils.to_categorical用法
如下所示:
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。说出来显得复杂,请看下面实例。
importkeras 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源码如下:
defto_categorical(y,num_classes=None,dtype='float32'): """Convertsaclassvector(integers)tobinaryclassmatrix. E.g.forusewithcategorical_crossentropy. #Arguments y:classvectortobeconvertedintoamatrix (integersfrom0tonum_classes). num_classes:totalnumberofclasses. dtype:Thedatatypeexpectedbytheinput,asastring (`float32`,`float64`,`int32`...) #Returns Abinarymatrixrepresentationoftheinput.Theclassesaxis isplacedlast. """ y=np.array(y,dtype='int') input_shape=y.shape ifinput_shapeandinput_shape[-1]==1andlen(input_shape)>1: input_shape=tuple(input_shape[:-1]) y=y.ravel() ifnotnum_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) returncategorical
补充知识:keras笔记——keras.utils.to_categoracal()函数
keras.utils.to_categoracal(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。
以上这篇浅谈keras中的keras.utils.to_categorical用法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持毛票票。