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

Python 如何为keras中的给定数据点指定多个标签?,python,keras,Python,Keras,我试图用一个连续的keras模型来解决一个分类问题 在Keras中,model.fit需要两个numpy阵列来训练-数据,标签。 若数据的每一行都有一个对应的标签,那个么这将正常工作 但是,对于我的使用,对于给定的数据点,我有多个可能的分类 这可以在keras中处理吗?如果是,我的数据和标签numpy数组的格式应该是什么 示例输入可能如下所示: data[0] = ['What is the colour of the shirt?'] #This text is converted to a

我试图用一个连续的keras模型来解决一个分类问题

在Keras中,
model.fit
需要两个
numpy
阵列来训练-
数据,
标签
。 若数据的每一行都有一个对应的标签,那个么这将正常工作

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

这可以在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']
我要求我的模型进行训练,使3个班中的任何一个都能正确回答给定的问题


任何帮助都会很好。

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

from sklearn.preprocessing import MultiLabelBinarizer

lb = MultiLabelBinarizer()
label = lb.fit_transform(label)
您可以将标签传递给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)

你能再解释一下吗?给出更多问题的例子,以及你期望得到的答案另外:当你列出['Red'、'Orange'、'Brown']时,你的意思是衬衫有三种颜色吗?我的意思是回答['Red'、'Orange'、'Brown']中的任何一种都是正确的。我正在建立一个可视化的问答系统,对于给定的图像和给定的问题,可能有多个正确答案。所以,我希望我的分类器能够进行训练,这样当在类似的图像上提出类似的问题时,这些颜色中的任何一种都应该是正确的。我只想要一个keras解决方案。Scikit学习解决方案不起作用