tensorflow标签向量化

有时候在处理数据的时候,必须将标签转换为张量,才能使用tensorflow的框架
方法1.将标签列表转换为整数张量

import numpy as np
def vectorize_sequences(sequences, dimension=10000):
	 results = np.zeros((len(sequences), dimension))
	 for i, sequence in enumerate(sequences):
		 results[i, sequence] = 1.
	 return results
	 
x_train = vectorize_sequences(train_data) 
x_test = vectorize_sequences(test_data) 

方法2.one-hot 编码。
one-hot 编码是分类数据广泛使用的一种格式,也叫分类编码(categorical encoding)

def to_one_hot(labels, dimension=46):
	 results = np.zeros((len(labels), dimension))
	 for i, label in enumerate(labels):
		 results[i, label] = 1.
	 return results
	 
	one_hot_train_labels = to_one_hot(train_labels) 
	one_hot_test_labels = to_one_hot(test_labels) 
	
直接调库(等效以上方法)

from keras.utils.np_utils import to_categorical
one_hot_train_labels = to_categorical(train_labels)
one_hot_test_labels = to_categorical(test_labels)

方法3.就是将其转换为整数张量。

y_train = np.array(train_labels)
y_test = np.array(test_labels)

对于这种编码方法,唯一需要改变的是损失函数的选择。函数categorical_crossentropy,标签应该遵循分类编码。对于整数标签,你应该使用sparse_categorical_crossentropy。

model.compile(optimizer=‘rmsprop’,
loss=‘sparse_categorical_crossentropy’,
metrics=[‘acc’])
这个新的损失函数在数学上与 categorical_crossentropy 完全相同,二者只是接口不同。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值