Machine learning keras模型输出向量的一个热向量,是否可能?如果没有,还有其他选择吗?

Machine learning keras模型输出向量的一个热向量,是否可能?如果没有,还有其他选择吗?,machine-learning,keras,deep-learning,neural-network,one-hot-encoding,Machine Learning,Keras,Deep Learning,Neural Network,One Hot Encoding,所以我有一个输出向量dim=7,每个位置有4个可能的类,所以我的问题是,有没有可能给keras模型一个一个热向量的向量,其中向量的每个位置都是一个热向量?类似这样的[[1000]、[1000]、[0100]、[0010]、[0001]、[0001]、[0010]]。 如果这是不可能的,还有其他选择吗?如果您希望您的模型的输出是这样的,当您的模型=keras.models.model(…)时,答案是不可能,因为您提供的输出(类似于一个步骤响应“[1000]=>[0000]”)阶跃处的梯度为无穷大,

所以我有一个输出向量dim=7,每个位置有4个可能的类,所以我的问题是,有没有可能给keras模型一个一个热向量的向量,其中向量的每个位置都是一个热向量?类似这样的
[[1000]、[1000]、[0100]、[0010]、[0001]、[0001]、[0010]]

如果这是不可能的,还有其他选择吗?

如果您希望您的模型的输出是这样的,当您的
模型=keras.models.model(…)
时,答案是不可能,因为您提供的输出(类似于一个步骤响应“[1000]=>[0000]”)阶跃处的梯度为无穷大,其他点的梯度为0

人们所做的是创建一个模型,给出不同行为的分布,选择最高概率作为预测值,并使用交叉熵损失优化模型。例如,从您的输出
[1,0,0,0]
中,您将得到类似
[0.9,0.01,0.01,0.08]
的内容。然后可以选择第一个实例作为预测值。这将确保您的模型在所有点上都有渐变


因此,如果您真的希望您的模型具有
dim=7
和4个不同的值,您可以通过sigmoid激活创建
28=7*4
的输出大小,然后选择前4个作为维度1(可能使用
np.argmax(输出[0:4])
)等。是的,这是可能的,是什么让您认为不可能的?