@tf.function
преобразует функцию Python в ее графическое представление.
Шаблон, который необходимо выполнить, должен определить функцию шага обучения, которая является наиболее интенсивной в вычислительном отношении, и украсить ее с помощью @tf.function
.
Обычно код выглядит так:
#model,loss, and optimizer defined previously
@tf.function
def train_step(features, labels):
with tf.GradientTape() as tape:
predictions = model(features)
loss_value = loss(labels, predictions)
gradients = tape.gradient(loss, model.trainable_variables)
optimizer.apply_gradients(zip(gradients, model.trainable_variables))
return loss_value
for features, labels in dataset:
lv = train_step(features, label)
print("loss: ", lv)