Компиляция графа в TensorFlow
Декоратор function превращает
обычную функцию Python в вызываемый
граф TensorFlow. Первый вызов
собирает граф, следующие идут
по уже готовой схеме. Удвоим
скалярный тензор и выведем
результат двух вызовов подряд:
import tensorflow as tf
@tf.function
def double(x):
return x + x
t = tf.constant(3.0)
print(double(t))
print(double(t))
# выведет tf.Tensor(6.0, shape=(), dtype=float32)
# выведет tf.Tensor(6.0, shape=(), dtype=float32)
Тот же приём работает и для нескольких операций подряд. Сложим тензор с самим собой и умножим на два внутри обёрнутой функции:
import tensorflow as tf
@tf.function
def scale(v):
return (v + v) * 2.0
data = tf.constant([1.0, 2.0, 3.0])
print(scale(data))
# выведет tf.Tensor([ 4. 8. 12.], shape=(3,), dtype=float32)
Оберните функцию, которая
прибавляет к аргументу
единицу, и выведите её
значение для 2.0.
Создайте вектор [10.0, 20.0]
и передайте его в обёрнутую
функцию, удваивающую каждый
элемент. Выведите результат.
Дважды подряд вызовите
обёрнутую функцию для
скаляра 7.0 и оба раза
выведите ответ.