提问人:user13919384 提问时间:8/21/2020 更新时间:8/21/2020 访问量:100
获取input_shape参数 LSTM 的形状
getting the shape for the input_shape parameter LSTM
问:
有没有办法在 LSTM 中自动获取 input_shape 参数的形状,然后将该形状设置为input_shape参数。 我希望能够让递归神经网络根据数据的形状自动设置输入形状。 谢谢。
dataset_train = pd.read_csv(dataset_path)
training_set = dataset_train.iloc[:, :].values
from sklearn.preprocessing import MinMaxScaler
sc = MinMaxScaler(feature_range=(0, 1))
training_set_scaled = sc.fit_transform(x)
print(len(training_set_scaled))
print(len(dataset_train))
X_train = []
y_train = []
for i in range(past_days, len(training_set_scaled) - future_days + 1):
X_train.append(training_set_scaled[i - past_days:i, 0])
y_train.append(training_set_scaled[i + future_days - 1:i + future_days, 0])
X_train, y_train = np.array(X_train), np.array(y_train)
## Building and Training the RNN
from tensorflow.keras.models import Sequential
from tensorflow.keras.layers import Dense
from tensorflow.keras.layers import LSTM
from tensorflow.keras.layers import Dropout
### Initialising the RNN
regressor = Sequential()
### Adding the first LSTM layer and some Dropout regularisation
regressor.add(LSTM(units=50, input_shape= (?) , return_sequences=True))
regressor.add(Dropout(0.2))
### Adding a second LSTM layer and some Dropout regularisation
regressor.add(LSTM(units=50, return_sequences=True))
regressor.add(Dropout(0.2))
### Adding a third LSTM layer and some Dropout regularisation
regressor.add(LSTM(units=50, return_sequences=True))
regressor.add(Dropout(0.2))
### Adding a fourth LSTM layer and some Dropout regularisation
regressor.add(LSTM(units=50))
regressor.add(Dropout(0.2))
### Adding the output layer
regressor.add(Dense(units=1))
### Compiling the RNN
regressor.compile(optimizer='adam', loss='mean_squared_error')
答:
0赞
Zain Sarwar
8/21/2020
#1
如果您知道要训练/测试模型的数据,这应该不是一个挑战。您只需从数据集中选择一个数据点即可。如果你的数据在 NumPy/Tensor/Pandas 中,你可以使用 .您不必担心批量大小,这是 Keras 会自动选择的。x.shape()
0赞
Nicolas Gervais
8/21/2020
#2
我一般使用.也就是说,假设你的输入形状是正确的,并且可以通过神经网络。input_shape=X_train.shape[1:]
评论
0赞
user13919384
8/21/2020
我收到以下错误:str(x.shape.as_list())) ValueError:层 lstm 的输入 0 与层不兼容:预期 ndim=3,发现 ndim=2。收到的完整形状:[无,0]
0赞
Nicolas Gervais
8/21/2020
所以你输入的形状是0?就像我说的,只有当你有正确的输入形状时,这才有效
0赞
Nicolas Gervais
8/21/2020
你的输入形状是什么?
0赞
Nicolas Gervais
8/21/2020
这是你的问题。您还没有准备好自动推断形状,因为您的输入是错误的
0赞
Nicolas Gervais
8/21/2020
同样,您的输入是错误的。不管你放什么都会抛出错误input_shape
评论