Nicht übereinstimmende Formen von Eingabe und Vorhersage in Tensorflow

Post a reply

Smilies
:) :( :oops: :chelo: :roll: :wink: :muza: :sorry: :angel: :read: *x) :clever:
View more smilies

BBCode is ON
[img] is ON
[flash] is OFF
[url] is ON
Smilies are ON

Topic review
   

Expand view Topic review: Nicht übereinstimmende Formen von Eingabe und Vorhersage in Tensorflow

by Guest » 05 Jan 2025, 06:06

Ich kompiliere das Tensorflow-Modell folgendermaßen:

Code: Select all

model = tf.keras.Sequential()
model.add( tf.keras.layers.InputLayer(shape=(2,)) )
model.add( tf.keras.layers.Dense(1024) )
model.add( tf.keras.layers.Dense(1024) )
model.add( tf.keras.layers.Dense(units=1) )

model.compile(loss="mean_squared_error", optimizer="adam", metrics=["mse"])
Ich erwarte, dass es „lernt“, zwei Gleitkommazahlen zu nehmen und eine Gleitkommazahl vorherzusagen.
Wenn ich es mit trainiere

Code: Select all

model.fit(x=trainData, y=trainRes, epochs=12, batch_size=100)

Code: Select all

trainData
und trainRes sind beide Numpy-Arrays.

Code: Select all

trainData.shape
ist (10000, 2) und trainRes.shape ist (10000,). Es scheint die Epochen zu durchlaufen und sogar model.evaluate(x=testData, y=testRes) wird ausgeführt (obwohl große MSE ausgegeben werden), aber wenn ich versuche, Folgendes auszuführen:

Code: Select all

res = model.predict(testData[0])
Ich erhalte eine Fehlermeldung:

Code: Select all

Invalid input shape for input Tensor("data:0", shape=(2,), dtype=float32). Expected shape (None, 2), but input has incompatible shape (2,)

Arguments received by Sequential.call():
• inputs=tf.Tensor(shape=(2,), dtype=float32)
• training=False
• mask=None
Aus irgendeinem Grund funktioniert Folgendes:

Code: Select all

res = model.predict(testData[0:1])
Anstelle eines einzelnen Werts wird jedoch ein 1x1-Array zurückgegeben.
Meine beste Vermutung ist, dass Keras irgendwie das gesamte Array als eine einzelne Einheit interpretiert zu Schulungszwecken, anstatt „Zeile für Zeile“ vorzugehen. Das erklärt auch, warum das Training Unsinn ist und nichts Vernünftiges angeht.

Top