我嘗試解決: 以前我有: ValueError: cannot reshape array of size 8244 into shape (5,1) for my LSTM model 然后我將 xtrain shape 更改為reshape(-1,1374,1)。
|專欄 | 計數 | 型別 | |:---- |:-----:| -----:| | 一些資料 | 1718 | 浮點數 | | 一些資料 | 1718 | 浮點數 | | 一些資料 | 1718 | 浮點數 | | 一些資料 | 1718 | 浮點數 |
ValueError: Data cardinality is ambiguous: x sizes: 1 y sizes: 1374 Make sure all arrays contain the same number of samples.
new.shape <- (1718,7)
# create the variables for prediction and split into training and test sets
y = np.log(new['Close'].astype(int)) # we want to predict the adjusted close price
X = new.drop('Close', axis=1) # predictive variables (removing Adj close from it)
#split the data into training and test sets
xtrain, xtest, ytrain, ytest = train_test_split(X, y, test_size=0.20, random_state=42)
# Build the LSTM model
model2 = Sequential()
model2.add(LSTM(128, return_sequences=True, input_shape= (xtrain.shape[1], 1)))
model2.add(LSTM(64, return_sequences=False))
model2.add(Dense(25))
model2.add(Dense(1))
# view model summary
model2.summary()
# Compile the model
model2.compile(optimizer='adam', loss='mean_squared_error')
xtrain.shape <-(1374,6)
#predictions
predictions2 = model2.predict(np.array(xtest).reshape(-1,5,1))
uj5u.com熱心網友回復:
您只需要確保x并y擁有相同數量的樣本,這意味著它們的第一個維度是相同的。這是一個作業示例:
import tensorflow as tf
x = tf.random.normal((100, 50, 1))
y = tf.random.normal((100, 1))
model2 = tf.keras.Sequential()
model2.add(tf.keras.layers.LSTM(128, return_sequences=True, input_shape= (x.shape[1], 1)))
model2.add(tf.keras.layers.LSTM(64, return_sequences=False))
model2.add(tf.keras.layers.Dense(25))
model2.add(tf.keras.layers.Dense(1))
model2.summary()
model2.compile(optimizer='adam', loss='mean_squared_error')
model2.fit(x, y, epochs=2)
雙向 -LSTM看起來像這樣:
import tensorflow as tf
x = tf.random.normal((100, 50, 1))
y = tf.random.normal((100, 1))
model2 = tf.keras.Sequential()
model2.add(tf.keras.layers.Bidirectional(tf.keras.layers.LSTM(128, return_sequences=True), input_shape= (x.shape[1], 1)))
model2.add(tf.keras.layers.Bidirectional(tf.keras.layers.LSTM(64, return_sequences=False)))
model2.add(tf.keras.layers.Dense(25))
model2.add(tf.keras.layers.Dense(1))
model2.summary()
model2.compile(optimizer='adam', loss='mean_squared_error')
model2.fit(x, y, epochs=2)
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/434148.html
上一篇:關于帶有ifelse陳述句的tensorflowmap函式
下一篇:Tensorflow的seq2seq:tensorflow.python.framework.errors_impl.InvalidArgumentError
