我将尝试在Keras中创建这个简单的RNN架构:
当我运行这段代码时,在添加SimpleRNN层的那一行出现了以下错误:
- 24个输入神经元的输入层
- 4个隐藏神经元的循环隐藏层
- 4个输出神经元的输出层
import numpy as np
from keras.models import Sequential
from keras.layers import Dense
from keras.layers import Activation
from keras.layers import SimpleRNN
#fix random seed
np.random.seed(7)
trainX = np.loadtxt('trainX.csv', delimiter=',', dtype=np.float32)
trainT = np.loadtxt('trainT.csv', delimiter=',', dtype=np.float32)
print(trainX)
print(trainT)
print(trainX.shape[1])
HIDDEN_LAYERS = 4
model = Sequential()
model.add(Dense(output_dim=HIDDEN_LAYERS, input_dim=trainX.shape[1]))
model.add(Activation("relu"))
model.add(SimpleRNN(4, input_dim=trainX.shape[1], input_length=128))
model.add(Activation("relu"))
model.add(Dense(output_dim=4))
model.add(Activation("softmax"))
model.compile(optimizer='rmsprop', loss='categorical_crossentropy', metrics=['accuracy'])
model.fit(trainX, trainT, nb_epoch=20, batch_size=128)
当我运行这段代码时,在添加SimpleRNN层的那一行出现了以下错误:
ValueError: Input 0 is incompatible with layer simple_rnn_1: expected ndim=3, found ndim=2
有人知道发生了什么吗?trainX.shape[1]的值为24。
trainX.reshape((trainX.shape[0], trainX.shape[1], 1))
比trainX=trainX.reshape(trainX.shape[0],1,trainX.shape[1])
更适合我的情况。 - Cherry Wu