Несоответствие форм ввода и прогнозирования в TensorflowPython

Программы на Python
Ответить
Anonymous
 Несоответствие форм ввода и прогнозирования в Tensorflow

Сообщение Anonymous »

Я компилирую модель Tensorflow следующим образом:

Код: Выделить всё

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"])
Я ожидаю, что он «научится» принимать два числа с плавающей запятой и прогнозировать одно число с плавающей запятой.
Когда я обучаю его с помощью

Код: Выделить всё

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

Код: Выделить всё

trainData
и trainRes являются пустыми массивами.

Код: Выделить всё

trainData.shape
— (10000, 2), а trainRes.shape — (10000,). Кажется, он выполняет эпохи и даже запускает model.evaluate(x=testData, y=testRes) (хотя выводит огромные MSE), но когда я пытаюсь запустить:

Код: Выделить всё

res = model.predict(testData[0])
Я получаю сообщение об ошибке:

Код: Выделить всё

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
По какой-то причине работает следующее:

Код: Выделить всё

res = model.predict(testData[0:1])
Однако вместо одного значения он возвращает массив 1x1.
Мое предположение состоит в том, что Keras каким-то образом интерпретирует весь массив как единую единицу. в учебных целях, а не идти «построчно». Это также объясняет, почему обучение — ерунда, и ни к чему толковому оно не приближается.

Подробнее здесь: https://stackoverflow.com/questions/793 ... tensorflow
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Python»