当前位置: 首页 > 知识库问答 >
问题:

检查目标时出错:预期稠密_24有3维,但得到了形状为(3283,1)的数组

谭伟
2023-03-14

我有一个X_train=[(4096, 18464),(4097, 43045),(4098, 38948),(4099, 2095),(4100, 59432),(4101, 55338),(4102, 51245),(4103, 26658),(4104, 30755),......]与形状(3283,2)和

y_train=[191891918919189,…,1155085434105692417,11551206203665152513,…]有一个形状(3283,1)

我用代码重塑了X_train:

X_train = np.reshape(X_train, (X_train.shape[0], 1, X_train.shape[1]))
X_test = np.reshape(X_test, (X_test.shape[0], 1, X_test.shape[1]))

并得到形状(3283,1,2)

现在,我构建了一个lstm模型:

data_dim= 2
timesteps=1
num_classes=2

model_pass = Sequential()
model_pass.add(LSTM(units=64,  return_sequences=True, 
                input_shape=(timesteps, data_dim)))
model_pass.add(Dense(2, activation='sigmoid'))
model_pass.compile(loss='binary_crossentropy', optimizer='adam',metrics=['accuracy'])
model_pass.summary()
model_pass.fit(X_train, y_train,batch_size=1, epochs = 1, verbose = 1)

但它给了我一个错误:ValueError:检查目标时出错:预期稠密_24有3维,但得到了具有形状的数组(3283,1)

谁能告诉我我该怎么做?

共有1个答案

公冶俊达
2023-03-14

密集层之后,输出形状为(采样数,时间步长,2)。数字2来自密集(2,…) 。但是y\u列车通行证可能有形状(样本数,1)。这是一个错误。

下面是一个可能的代码示例,其中我更改了Dense(2,…) 密集(1,…) 并重塑y_序列

from keras.models import Sequential
from keras.layers import LSTM
from keras.layers import Dense
import numpy as np

X_train = np.random.randn(3283,2)
X_test = np.random.randn(1000,2)
y_train = np.random.randint(2, size=(3283,1))
print(y_train.shape)
X_train = np.reshape(X_train, (X_train.shape[0], 1, X_train.shape[1]))
X_test = np.reshape(X_test, (X_test.shape[0], 1, X_test.shape[1]))
y_train = np.reshape(y_train, (y_train.shape[0],1, y_train.shape[1]))

data_dim= 2
timesteps=1
num_classes=2

model_pass = Sequential()
model_pass.add(LSTM(units=64,  return_sequences=True, 
                input_shape=(timesteps, data_dim)))
model_pass.add(Dense(1, activation='sigmoid'))
model_pass.compile(loss='binary_crossentropy', optimizer='adam',metrics=['accuracy'])
model_pass.summary()
model_pass.fit(X_train, y_train,batch_size=1, epochs = 1, verbose = 1)

顺便说一下,只是一个评论。奇怪的是,您的y\u列值没有“二进制”值,您使用的是loss='binary\u crossentropy'

 类似资料:
  • 我正在运行一个CNN,检查图像,但不分类。事实上,输出层是一个密集层,其参数为1d中标签中图像的大小。 如下面的代码所示,我使用model.fit_generator()而不是model.fit,当开始训练模型时,会出现以下错误: 为什么这是一个错误?我的密度的输出是一个19316元素的数组,为什么它期望它有一个(1,)的形状? 此处还附上了模型的摘要: conv2d_28(Conv2D)(无,2

  • 我想基于使用TfidfVectorizer的矢量化单词进行多标签分类(20个不同的输出标签)。我已经设置了39974行,每行包含2739个项目(0或1)。 我想使用Keras模型对这些数据进行分类,该模型将包含1个隐藏层(~ 20个节点,激活='relu'),输出层等于20个可能的输出值(激活='softmax'以选择最佳拟合)。 以下是我目前的代码: 但有错误: ValueError:检查输入时

  • 当我使用澳大利亚数据集编写降雨预测代码时,我在拟合ann模型并运行10的纪元值时遇到了错误。我使用numpy、熊猫、matplotlib、seborn等库作为导入。对于模型的运行,我使用Keras进行密集和顺序搜索。我还使用标准标量来标准化x的值。我得到了这一行的错误-ann.fit(x_train,y_train,batch_size=10,nb_epoch=10,详细=1)下面是我的错误-Va

  • 问题内容: 我正在尝试使用学习的.h5文件进行预测。学习模型如下。 我将输入的形式编写如下。 我以为形状正确,但是发生以下错误。 ValueError:检查时出错:预期density_1_input的形状为(3,),但数组的形状为(1,) 的形状显然是,但上述错误并没有消失(数据来自的CSV文件)。 我怎么解决这个问题? 问题答案: x的形状显然是,但上述误差仍在继续。 您是对的,但这 不是 ke

  • 我得到这个错误: ValueError:检查输入时出错:预期序列有3个维度,但得到了形状为(500400)的数组 以下是我正在使用的代码。 输出(这里每行有500行): 代码: 有什么见解吗?

  • 问题内容: 我的输入只是一个具有339732行和两列的csv文件: 第一个是29个特征值,即X 第二个是二进制标签值,即Y 我正在尝试在堆叠的LSTM模型上训练数据: 这将引发错误: 追溯(最近一次调用为最新一次):在model.fit(X_train,y_train,batch_size = 400,epochs = 20,verbose = 1)中,文件“ first_approach.py​

  • 问题内容: 嗨,我正在为一类分类构建图像分类器,其中在运行此模型时使用了自动编码器,我在此行得到此错误(autoencoder_model.fit)(ValueError:检查目标时出错:预期model_2具有形状(无,252,252,1)但得到形状为(300,128,128,3)的数组。) 问题答案: 解码器的输出形状与训练数据的形状之间根本不兼容。(目标表示输出)。 我看到您有2个MaxPoo

  • 我完成了对我的模型的培训,该模型由20个类组成,精度达到0.9993,目前正在进行测试。我正在学习本教程,但我在 培训数据定义为: 这就是我对cnn的定义 这里也是我对我的模型的总结 我得到的错误是 ---------------------------------------------------------------------------中的ValueError回溯(最近一次调用)---