如何解决我如何正确地为 keras 模型塑造我的输入数据?
为了好玩,我目前正在研究 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,30) 4440
_________________________________________________________________
dense (Dense) (None,3) 93
=================================================================
Total params: 4,533
Trainable params: 4,533
Non-trainable params: 0
_________________________________________________________________
当我运行这个程序时,我收到这个错误: ValueError: Shapes (None,3) 和 (None,3) 不兼容。
我已经尝试将我的数据重塑为 72x1 的向量,但这也不起作用。
也许有人可以帮助我正确调整输入数据的形状:)
解决方法
在使用 categorical_crossentropy
损失函数时,您可能需要按如下方式定义模型。
model.add(LSTM(30,activation="softsign",return_sequences=False,input_shape=(12,6)))
model.add(Dense(3,activations='softmax'))
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。