Python 预期稠密_8具有形状(2),但获得具有形状(1)的数组
我正在尝试创建一个用于分析ECG信号的多通道1D CNN。我有258个12导联心电图,长度为300个样本,所以我的输入维度是(258300,12) 我正在运行上面的代码,并得到以下错误 ValueError:检查目标时出错:预期稠密_8具有形状(2),但获得具有形状(1)的数组Python 预期稠密_8具有形状(2),但获得具有形状(1)的数组,python,tensorflow,keras,Python,Tensorflow,Keras,我正在尝试创建一个用于分析ECG信号的多通道1D CNN。我有258个12导联心电图,长度为300个样本,所以我的输入维度是(258300,12) 我正在运行上面的代码,并得到以下错误 ValueError:检查目标时出错:预期稠密_8具有形状(2),但获得具有形状(1)的数组 谢谢你的帮助 那么,您正在解决一个二进制分类问题。 错误消息表明我们的模型需要标签的形状(2,),我假设您使用的是num\u classes=2。但是,您的标签是1或0,因为提供的标签形状是(1,)。要解决此错误,您必须
谢谢你的帮助 那么,您正在解决一个二进制分类问题。
错误消息表明我们的模型需要标签的形状
(2,)
,我假设您使用的是num\u classes=2
。但是,您的标签是1
或0
,因为提供的标签形状是(1,)
。要解决此错误,您必须更改模型的输出密集层,该层应该有一个具有sigmoid
激活功能的神经元
model.add(Dense(num_classes, activation='sigmoid')) # num_classes=1
因此,您正在解决一个二进制分类问题。
错误消息表明我们的模型需要标签的形状
(2,)
,我假设您使用的是num\u classes=2
。但是,您的标签是1
或0
,因为提供的标签形状是(1,)
。要解决此错误,您必须更改模型的输出密集层,该层应该有一个具有sigmoid
激活功能的神经元
model.add(Dense(num_classes, activation='sigmoid')) # num_classes=1
你想这样训练模特儿
model.add(Dense(num_classes, activation='softmax'))
model.fit(X\u序列、y\u序列、epochs=10、批量大小=20、详细度=1、验证分割=0.2)
y\u序列的形状类似于(n,1)
,其中n
是用于训练的样本数
现在,您正在使用最后一层构建一个模型,如下所示
model.add(Dense(num_classes, activation='softmax'))
从错误消息可以推断,您正在设置num\u classes=2
。因此,最后一层将有2个节点。这样的模型期望y\u列
的形状(n,2)
。但是您使用的是y\u train
的形状(n,1)
为了修复错误,可以将最后一层更改为
num_classes = 1
model.add(Dense(num_classes, activation='sigmoid'))
请注意,激活功能应更改为sigmoid
您正在尝试这样训练模型
model.add(Dense(num_classes, activation='softmax'))
model.fit(X\u序列、y\u序列、epochs=10、批量大小=20、详细度=1、验证分割=0.2)
y\u序列的形状类似于(n,1)
,其中n
是用于训练的样本数
现在,您正在使用最后一层构建一个模型,如下所示
model.add(Dense(num_classes, activation='softmax'))
从错误消息可以推断,您正在设置num\u classes=2
。因此,最后一层将有2个节点。这样的模型期望y\u列
的形状(n,2)
。但是您使用的是y\u train
的形状(n,1)
为了修复错误,可以将最后一层更改为
num_classes = 1
model.add(Dense(num_classes, activation='sigmoid'))
请注意,激活功能应更改为sigmoid
,错误发生在哪里?你试过调试什么?我建议阅读以下文章:。您的培训数据是什么形状的?错误发生在哪里?你试过调试什么?我建议阅读以下文章:。你的训练数据是什么形状的?很高兴知道它有帮助。很高兴知道它有帮助。