我正在嘗試分批提供 Sequential 模型。為了重現我的例子,假設我的資料是:
X = np.random.rand(432,24,1)
Y = np.random.rand(432,24,1)
我的目標是分批提供模型。一次 24 個點(24 x 1 向量),432 次。
我將我的模型構建為:
X_train, X_test, y_train, y_test = train_test_split(X, Y, test_size=0.3, random_state=12)
model = keras.Sequential([
#keras.layers.Flatten(batch_input_shape=(None, 432, 2)),
keras.layers.Dense(64, activation=tf.nn.relu),
keras.layers.Dense(2, activation=tf.nn.sigmoid),
])
model.compile(optimizer='adam', loss='binary_crossentropy', metrics=['accuracy'])
history = model.fit(X_train, y_train, epochs=200, batch_size=32, validation_split=0.3)
test_loss, test_acc = model.evaluate(X_test, y_test)
print('Model loss:', test_loss, 'Model accuracy: ', test_acc)
但是,我收到此錯誤:
值錯誤:dense_25 層的輸入 0 與層不兼容:輸入形狀的預期軸 -1 具有值 864,但收到的輸入形狀為(無,432)

uj5u.com熱心網友回復:
我不太確定你想做什么,但這里有一個作業示例:
import tensorflow as tf
from sklearn.model_selection import train_test_split
X = np.random.rand(432, 24)
Y = np.random.randint(2, size=(432, 2))
X_train, X_test, y_train, y_test = train_test_split(X, Y, test_size=0.3, random_state=12)
model = tf.keras.Sequential([
tf.keras.layers.Dense(64, activation=tf.nn.relu),
tf.keras.layers.Dense(2, activation=tf.nn.sigmoid),
])
model.compile(optimizer='adam', loss='binary_crossentropy', metrics=['accuracy'])
history = model.fit(X_train, y_train, epochs=200, batch_size=32, validation_split=0.3)
test_loss, test_acc = model.evaluate(X_test, y_test)
print('Model loss:', test_loss, 'Model accuracy: ', test_acc)
請注意,您的資料X具有 shape(432, 24)并且您的標簽Y具有 shape (432, 2)。我洗掉了您的Flatten圖層,因為如果您的資料具有 shape 則沒有多大意義(432, 24)。您可以在訓練模型后進行預測,如下所示:
X_new = np.random.rand(1, 24)
Y_new = model.predict(X_new)
print(Y_new)
uj5u.com熱心網友回復:
我認為您的輸入資料的維度存在一些混淆。我將假設 432 是點數,每個資料點的維度為 24(即 24 個特征)。在這種情況下,第一個維度應該索引這些點,因為 scikit-learn 和 keras 都希望這樣。例如,
X = np.random.rand(432, 24)
Y = np.random.rand(432, 24)
那么如果您相應地更正輸入形狀,您的代碼應該運行,
model = keras.Sequential([
keras.layers.Flatten(batch_input_shape=(None, 24)),
keras.layers.Dense(64, activation=tf.nn.relu),
keras.layers.Dense(2, activation=tf.nn.sigmoid),
])
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/317851.html
