简单的RNN拟合尺寸

时间:2019-09-16 13:13:16

标签: python recurrent-neural-network

我遇到了以下代码中的错误:

import time
import sys
import numpy as np
import pandas as pd
import random as rd
from keras.models import Sequential
from keras.optimizers import SGD
from keras.layers import LSTM
from keras.layers.core import Dense, Activation
#from keras.layers.recurrent import LSTM
from keras.layers.recurrent import SimpleRNN
#from sklearn.preprocessing import MinMaxScaler
#from keras.preprocessing.sequence import pad_sequences
from sklearn.model_selection import train_test_split
from sklearn.model_selection import learning_curve

series_X=pd.read_csv("novo.csv", header=0)
X, y=train_test_split(series_X, test_size=0.25)
#Define Model
seed=2019
rd.seed(seed)
fit1=Sequential()

fit1.add(SimpleRNN(output_dim=1, activation='tanh', input_shape=(7500,1)))

fit1.add(Dense(output_dim=1, activation='linear'))

sgd=SGD(lr=0.01)

fit1.compile(loss='mean_squared_error', optimizer=sgd)

fit1.fit(X, y, batch_size=10, nb_epoch=10)

错误输出如下:

ValueError: Error when checking input: expected simple_rnn_23_input to have 3 dimensions, but got array with shape (7500, 1)

我知道此问题已经发布,但是我还不能解决。

1 个答案:

答案 0 :(得分:1)

问题是您正在向模型输入3维输入,但您已声明input_shape为2d,则应尝试如下操作:

/new_column = ${field.value:fromRadix(16)}

顺便说一句,您的代码完全错误,我看到从未像训练和测试那样被声明过的变量,而fit函数应该将第一个参数作为输入,在您的情况下为x,第二个为输出或y < / p>

fit1.add(SimpleRNN(output_dim=1, activation='tanh', input_shape=x.shape)))