我如何为 keras 模型正确塑造我的输入数据?
How do i correctly shape my input data for a keras model?
我目前正在研究 Keras 神经网络,只是为了好玩。我只是在学习基础知识,但无法解决这个维度问题:
所以我的输入数据 (X) 应该是一个 12x6 矩阵,每个时间戳有 12 个时间戳和 6 个不同的数据值:
X = np.zeros([2867, 12, 6])
Y = np.zeros([2867, 3])
我的输出 (Y) 应该是单热编码的 3x1 向量。
现在我想通过以下 LSTM 模型提供这些数据。
model = Sequential()
model.add(LSTM(30, activation="softsign", return_sequences=True, input_shape=(12, 6)))
model.add(Dense(3))
model.summary()
model.compile(optimizer='adam', loss='categorical_crossentropy', metrics=['accuracy'])
model.fit(x=X, y=Y, batch_size=100, epochs=1000, verbose=2, validation_split=0.2)
摘要如下所示:
模型:“顺序”
Layer (type) Output Shape Param #
=================================================================
lstm (LSTM) (None, 12, 30) 4440
_________________________________________________________________
dense (Dense) (None, 12, 3) 93
=================================================================
Total params: 4,533
Trainable params: 4,533
Non-trainable params: 0
_________________________________________________________________
当我 运行 这个程序时,我得到这个错误:
ValueError:形状 (None, 3) 和 (None, 12, 3) 不兼容。
我已经尝试将我的数据重塑为 72x1 向量,但这也不起作用。
也许有人可以帮助我如何正确调整输入数据:)。
您可能需要按如下方式定义您的模型,因为您使用了 categorical_crossentropy
损失函数。
model.add(LSTM(30, activation="softsign",
return_sequences=False, input_shape=(12, 6)))
model.add(Dense(3, activations='softmax'))
我目前正在研究 Keras 神经网络,只是为了好玩。我只是在学习基础知识,但无法解决这个维度问题:
所以我的输入数据 (X) 应该是一个 12x6 矩阵,每个时间戳有 12 个时间戳和 6 个不同的数据值:
X = np.zeros([2867, 12, 6])
Y = np.zeros([2867, 3])
我的输出 (Y) 应该是单热编码的 3x1 向量。
现在我想通过以下 LSTM 模型提供这些数据。
model = Sequential()
model.add(LSTM(30, activation="softsign", return_sequences=True, input_shape=(12, 6)))
model.add(Dense(3))
model.summary()
model.compile(optimizer='adam', loss='categorical_crossentropy', metrics=['accuracy'])
model.fit(x=X, y=Y, batch_size=100, epochs=1000, verbose=2, validation_split=0.2)
摘要如下所示:
模型:“顺序”
Layer (type) Output Shape Param #
=================================================================
lstm (LSTM) (None, 12, 30) 4440
_________________________________________________________________
dense (Dense) (None, 12, 3) 93
=================================================================
Total params: 4,533
Trainable params: 4,533
Non-trainable params: 0
_________________________________________________________________
当我 运行 这个程序时,我得到这个错误: ValueError:形状 (None, 3) 和 (None, 12, 3) 不兼容。
我已经尝试将我的数据重塑为 72x1 向量,但这也不起作用。
也许有人可以帮助我如何正确调整输入数据:)。
您可能需要按如下方式定义您的模型,因为您使用了 categorical_crossentropy
损失函数。
model.add(LSTM(30, activation="softsign",
return_sequences=False, input_shape=(12, 6)))
model.add(Dense(3, activations='softmax'))