model.predict в тензорном потоке не работает - PullRequest
0 голосов
/ 03 мая 2020

Я пишу этот код, чтобы предсказать окончательный ответ, но я не получаю его.

Вот мой тензор потока импорта кода как tf import numpy как np из тензорного потока import keras

model = tf.keras.Sequential([keras.layers.Dense(units=1, input_shape=[1])])
model.compile(optimizer='sgd', loss='mean_squared_error')

xs = np.array([-1.0,  0.0, 1.0, 2.0, 3.0, 4.0], dtype=float)
ys = np.array([-3.0, -1.0, 1.0, 3.0, 5.0, 7.0], dtype=float)

model.fit(xs, ys, epochs=500)

print(model.predict([10.0]))

И я получаю сообщение об ошибке: введите описание изображения здесь

Ответы [ 2 ]

1 голос
/ 03 мая 2020

Я думаю, что есть опечатка в первом слое, где вы упоминаете input_shape. Если у вас есть одно измерение, как в вашем случае, запятая (,) необходима. Под капотом модель добавит размер партии. Однако, если в вашем input_shape есть два или более измерений, вам не нужна запятая , в конце. Поэтому измените следующую строку

model = tf.keras.Sequential([keras.layers.Dense(units=1, input_shape=(1,))]) 

Вот ваш обновленный полный код, который работает для меня.

import tensorflow as tf 
import numpy as np 
from tensorflow import keras

model = tf.keras.Sequential([keras.layers.Dense(units=1, input_shape=(1,))]) 
model.compile(optimizer='sgd', loss='mean_squared_error')

xs = np.array([-1.0, 0.0, 1.0, 2.0, 3.0, 4.0], dtype=float) 
ys = np.array([-3.0, -1.0, 1.0, 3.0, 5.0, 7.0], dtype=float)

model.fit(xs, ys, epochs=50)

print(model.predict([10.0]))
1 голос
/ 03 мая 2020

Форма ввода должна быть (1,), а не [1].

model = tf.keras.Sequential([keras.layers.Dense(units=1, input_shape=(1,))])
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...