Обучение модели в TensorFlow
Обучение запускают методом
fit: передают таблицу
признаков, столбец эталонных
ответов и число проходов по
всей таблице. Модель должна
быть уже скомпилирована.
Возьмём три пары «признак - ответ», средний квадрат и спуск с умеренным шагом. Запустим три эпохи и посмотрим, как меняется ошибка:
import tensorflow as tf
import numpy as np
tf.keras.utils.set_random_seed(0)
model = tf.keras.Sequential([
tf.keras.layers.Dense(1, input_shape=(1,)),
])
model.compile(
optimizer=tf.keras.optimizers.SGD(
learning_rate=0.1
),
loss="mse",
)
features = np.array(
[[1.0], [2.0], [3.0]], dtype=np.float32
)
targets = np.array(
[[2.0], [4.0], [6.0]], dtype=np.float32
)
model.fit(features, targets, epochs=3, verbose=2)
# последняя строка loss: 0.0694
Таблицу признаков и ответы можно задать тензорами. Число эпох ограничивают, чтобы прогон закончился быстро:
import tensorflow as tf
tf.keras.utils.set_random_seed(0)
model = tf.keras.Sequential([
tf.keras.layers.Dense(1, input_shape=(1,)),
])
model.compile(optimizer="sgd", loss="mse")
features = tf.constant([[0.0], [1.0], [2.0]])
targets = tf.constant([[1.0], [2.0], [3.0]])
model.fit(features, targets, epochs=2, verbose=2)
# последняя строка loss: 3.9749
Подготовьте модель с одним
выходом для одного признака.
Обучите её на строках
[1.0], [2.0], [3.0]
с ответами 3.0, 5.0,
7.0 две эпохи.
Выведите ход обучения.
Соберите таблицу из двух
столбцов-признаков
[0.0, 1.0] и [1.0, 0.0]
и столбец ответов 1.0
и 2.0. Подберите веса
одной выходной модели за
три эпохи.
Задайте три пары: признак
0.0, 1.0, 2.0
и целевые 0.0, 2.0,
4.0. Проведите два
полных прохода по данным
и выведите журнал ошибки.