gpt4 book ai didi

python - 如何正确定义 Keras 循环层的 input_dim

转载 作者:行者123 更新时间:2023-11-30 09:03:53 24 4
gpt4 key购买 nike

我正在尝试训练一些神经网络来预测时间序列。我正在使用顺序模型来定义我的神经网络结构。它看起来像:

from keras.models import Sequential
from keras.layers import Dense, Activation, SimpleRNN, Embedding
from keras import optimizers
from keras import losses
model = Sequential()
#model.add(Dense(units=5, input_dim=3, activation = 'tanh'))
model.add(SimpleRNN(units=5, input_dim = 3, activation = 'tanh'))
model.add(Dense(units=16, activation='tanh'))
model.add(Dense(1, activation='linear'))
prop = optimizers.rmsprop(lr=0.01)
sgd = optimizers.sgd(lr=0.01, nesterov=True, momentum=0.005)
model.compile(optimizer=prop, loss='mean_squared_error')

它不执行,返回的错误是:

ValueError: Error when checking input: expected simple_rnn_9_input to have 3 dimensions, but got array with shape (221079, 3)

当我使用注释掉的Dense层时,一切都很好。我阅读了 Keras 文档,发现他们正在使用嵌入层。虽然,我不太明白为什么 Embedding 层对于使用 SimpleRNNLSTM 等循环层是必要的。

train_set 是 4 列的 2D 数组 - 第 4 列是目标列,其余是输入。

是否有任何简单的方法可以将 Keras 的循环层与传统的 Dense 层一起使用?我希望得到解释和一些代码示例。

最诚挚的问候,马克

最佳答案

我不是这方面的专家,但这可能会有所帮助

import numpy as  np
import numpy as np

data = np.zeros((10,4))
X = data[:,0:3].reshape(-1,1,3)
y = data[:,3].reshape(-1,1)
print(X.shape)
print(y.shape)

打印:

(10, 1, 3)
(10, 1)

然后:

model.fit(X, y)

关于python - 如何正确定义 Keras 循环层的 input_dim,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57741714/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com