如何为keras中的给定数据点指定多个标签?

时间:2018-02-07 12:02:30

标签: python keras

我正在尝试使用顺序keras模型来解决分类问题。

在Keras,model.fit要求训练两个numpy数组 - datalabels。 如果数据的每一行都有一个相应的标签,则此方法可以正常工作。

但是,对于我的使用,对于给定的数据点,我可以有多个分类。

这可以在keras中处理吗?如果是这样,我的数据和标签numpy数组的格式应该是什么?

示例输入可能如下所示:

data[0] = ['What is the colour of the shirt?'] 
#This text is converted to a vector using a 300 dimension GloVe embedding layer and then processed. 

label[0] = ['Red','Orange','Brown']

我要求我的模型进行训练,以便任何三个类对于给出的问题都是正确的。

任何帮助都会很棒。

1 个答案:

答案 0 :(得分:1)

您可以使用MultiLabelBinarizer执行此操作:

from sklearn.preprocessing import MultiLabelBinarizer

lb = MultiLabelBinarizer()
label = lb.fit_transform(label)

您可以使用" categorical_crossentropy'将标签传递给fit函数。损失。

如果你想用keras做的话:

from keras.utils import to_categorical
import numpy as np

unique_labels, new_labels = np.unique(label, return_inverse=True)
to_categorical(new_labels, num_classes=None)