Метод predict класса Sequential
Метод predict класса Sequential выполняет предсказание выходных данных для переданных входных данных на основе обученной модели. Метод применяется к экземпляру модели. Первым параметром передаются входные данные, вторым - размер пакета, третьим - подробность вывода, четвертым - список колбэков. Метод возвращает массив предсказанных значений.
Синтаксис
model.predict(x, [batch_size], [verbose], [callbacks])
Пример
Давайте создадим простую модель, обучим ее и выполним предсказание для новых данных:
import tensorflow as tf
tf.random.set_seed(0)
model = tf.keras.Sequential([
tf.keras.layers.Dense(1, input_shape=(1,))
])
model.compile(optimizer='sgd', loss='mse')
x_train = tf.constant([[1.0], [2.0], [3.0], [4.0], [5.0]])
y_train = tf.constant([[2.0], [4.0], [6.0], [8.0], [10.0]])
model.fit(x_train, y_train, epochs=100, verbose=0)
x_test = tf.constant([[6.0], [7.0], [8.0]])
res = model.predict(x_test, verbose=0)
print(res)
Результат выполнения кода:
[[12.000123]
[14.000142]
[16.000162]]
Пример
Давайте выполним предсказание с указанием размера пакета:
import tensorflow as tf
tf.random.set_seed(0)
model = tf.keras.Sequential([
tf.keras.layers.Dense(1, input_shape=(1,))
])
model.compile(optimizer='sgd', loss='mse')
x_train = tf.constant([[1.0], [2.0], [3.0], [4.0], [5.0]])
y_train = tf.constant([[2.0], [4.0], [6.0], [8.0], [10.0]])
model.fit(x_train, y_train, epochs=100, verbose=0)
x_test = tf.constant([[6.0], [7.0], [8.0], [9.0]])
res = model.predict(x_test, batch_size=2, verbose=0)
print(res)
Результат выполнения кода:
[[12.000123]
[14.000142]
[16.000162]
[18.000181]]
Пример
Давайте выполним предсказание для многомерных входных данных:
import tensorflow as tf
tf.random.set_seed(0)
model = tf.keras.Sequential([
tf.keras.layers.Dense(1, input_shape=(3,))
])
model.compile(optimizer='sgd', loss='mse')
x_train = tf.constant([[1.0, 2.0, 3.0], [4.0, 5.0, 6.0], [7.0, 8.0, 9.0]])
y_train = tf.constant([[6.0], [15.0], [24.0]])
model.fit(x_train, y_train, epochs=100, verbose=0)
x_test = tf.constant([[10.0, 11.0, 12.0], [13.0, 14.0, 15.0]])
res = model.predict(x_test, verbose=0)
print(res)
Результат выполнения кода:
[[33.000267]
[42.000336]]
Смотрите также
-
класс
Sequential,
который создает линейный стек слоев -
метод
fit,
который выполняет обучение модели -
метод
compile,
который настраивает модель для обучения -
метод
summary,
который выводит сводку о модели