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)
und trainRes sind beide Numpy-Arrays.
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:
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.
Ich kompiliere das Tensorflow-Modell folgendermaßen:
[code]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"])
[/code]
Ich erwarte, dass es „lernt“, zwei Gleitkommazahlen zu nehmen und eine Gleitkommazahl vorherzusagen.
Wenn ich es mit trainiere
[code]model.fit(x=trainData, y=trainRes, epochs=12, batch_size=100)
[/code]
[code]trainData[/code] und trainRes sind beide Numpy-Arrays.
[code]trainData.shape[/code] 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]res = model.predict(testData[0])
[/code]
Ich erhalte eine Fehlermeldung:
[code]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
[/code]
Aus irgendeinem Grund funktioniert Folgendes:
[code]res = model.predict(testData[0:1])
[/code]
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.