Python 两类以上的Tensorflow神经网络

Python 两类以上的Tensorflow神经网络,python,tensorflow,neural-network,activation,Python,Tensorflow,Neural Network,Activation,所以我看了一个关于udemy的tensorflow教程,决定自己试试看,他说如果你想要超过2个类别,就把激活改为“softmax”,单位改为4,因为我有4个不同的类别(从0:1改为1:4),如果“y”中只有2个不同的值,一切都会正常但当我将其更改为4个单元和4个类别时,我得到了错误: ValueError:检查目标时出错:预期稠密_3具有形状(4),但获得具有形状(1)的数组 即使将其改回形状“1”,也只会导致正确或错误的分类 y中的我的数据集: 这里有问题 对于多类任务,您的y_训练和y_测

所以我看了一个关于udemy的tensorflow教程,决定自己试试看,他说如果你想要超过2个类别,就把激活改为“softmax”,单位改为4,因为我有4个不同的类别(从0:1改为1:4),如果“y”中只有2个不同的值,一切都会正常但当我将其更改为4个单元和4个类别时,我得到了错误:

ValueError:检查目标时出错:预期稠密_3具有形状(4),但获得具有形状(1)的数组

即使将其改回形状“1”,也只会导致正确或错误的分类

y中的我的数据集:

这里有问题
对于多类任务,您的y_训练和y_测试必须是一个热编码。这意味着它们必须有维度(样本的数量,4),其中4表示类的数量

在列车测试拆分之前,您需要将tensorflow.keras.utils.to_category应用于它们

y = to_categorical(y, 4)

参考:

对于多类任务,您的y_训练和y_测试必须是一个热编码。这意味着它们必须有维度(样本的数量,4),其中4表示类的数量

在列车测试拆分之前,您需要将tensorflow.keras.utils.to_category应用于它们

y = to_categorical(y, 4)

ref:

我认为你应该对你的标签进行一次热编码-我不确定我认为你应该对你的标签进行一次热编码-我不确定tf.keras.utils.to_category(y,4)和y=tf.keras.utils.to_category(y,4)带来:索引4超出了大小为4的轴1的界限y的形状是什么(to_categegorical之前)?y=tf.keras.utils.to_categorical(y,num_classes=None,dtype='float64')所以“None”类工作得很好,比如tf.keras.utils.to_category(y,4)和y=tf.keras.utils.to_category(y,4)带来:索引4超出了大小为4的轴1的界限y的形状(在to_category之前)?y=tf.keras.utils.to_categegegory(y,num_classes=None,dtype='64')所以“None”上课很顺利
y = to_categorical(y, 4)