Python 预期稠密_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,)。要解决此错误,您必须

我正在尝试创建一个用于分析ECG信号的多通道1D CNN。我有258个12导联心电图,长度为300个样本,所以我的输入维度是(258300,12)

我正在运行上面的代码,并得到以下错误

ValueError:检查目标时出错:预期稠密_8具有形状(2),但获得具有形状(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

,错误发生在哪里?你试过调试什么?我建议阅读以下文章:。您的培训数据是什么形状的?错误发生在哪里?你试过调试什么?我建议阅读以下文章:。你的训练数据是什么形状的?很高兴知道它有帮助。很高兴知道它有帮助。