Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/backbone.js/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Tensorflow 检查目标时出错:预期稠密_1有2维,但得到了形状为(1,4000,25)的数组_Tensorflow_Keras_Classification_Lstm_Unsupervised Learning - Fatal编程技术网

Tensorflow 检查目标时出错:预期稠密_1有2维,但得到了形状为(1,4000,25)的数组

Tensorflow 检查目标时出错:预期稠密_1有2维,但得到了形状为(1,4000,25)的数组,tensorflow,keras,classification,lstm,unsupervised-learning,Tensorflow,Keras,Classification,Lstm,Unsupervised Learning,我试图训练一个LSTM网络来进行无监督的二进制分类 我有一个整数矩阵作为输入,每行是一个不同的跟踪,每列是一个特征 这是我使用的模型: time_steps = 4000 features = 25 model = Sequential() model.add(LSTM(128, input_shape=(time_steps, features), name='lstm')) model.add(Dense(1, activation='relu')) model.summary() mode

我试图训练一个LSTM网络来进行无监督的二进制分类

我有一个整数矩阵作为输入,每行是一个不同的跟踪,每列是一个特征

这是我使用的模型:

time_steps = 4000
features = 25
model = Sequential()
model.add(LSTM(128, input_shape=(time_steps, features), name='lstm'))
model.add(Dense(1, activation='relu'))
model.summary()
model.compile(loss='binary_crossentropy', optimizer='adam', metrics=['accuracy'])
model.fit(x_train, x_train, batch_size=batch_size, epochs=epochs, verbose=2)
这就是我得到的错误:

检查目标时出错:预期稠密_1具有2维,但得到形状为1、4000、25的数组

它是在尝试运行model.fit时生成的

输入的形式如下所示:

x_train = np.array([input_array[:4000]])
输入的每条轨迹都有25个特征

我是这个领域的新手,不知道如何解决这个问题。 我查过类似的票,但没有一张对我有帮助

下面是我分析的一些门票:


您尚未显示输入_数组的形状,但可以尝试使用np.restrageInput_数组,4000,25对其进行整形。阅读有关重塑的更多信息

几句话:

x_序列作为输入提供给LSTM层,该层需要3D输入。第一个维度是样本,第二个维度是时间步长,最后一个维度是特征。 当您调用fit时,您将两次通过x_列,这意味着您希望目标与输入数据相同。如果您尝试使用自动编码器,这是有意义的,但是它不能在这种体系结构上工作。密集层的输出将是单个值,它无法匹配3D输入的形状。下面我添加了一个y_序列,这样您的模型就可以预测单个值。 时间步数=40 特征=25 x_train=np.random.normalsize=10,时间步长,特征 y_序列=np.随机。正常大小=10, 模型=顺序 model.addLSTM128,输入\u shape=time\u步骤,特征,name='lstm' model.addDense1,activation='relu' 范文摘要 model.compileloss='binary\u crossentropy',optimizer='adam',metrics=['accurity'] model.fitx\u列,y\u列,批量大小=32,历代数=2,详细数=2 祝你好运