РЕПЕТИТОР математика физика информатика
Для школьников и студентов. Подтягивание пробелов. ЦЭ, ЦТ, ОГЭ, ЕГЭ.
Идет набор на ЛЕТО. Жмите для подробностей:)
376 of 824 menu

Метод batch_jacobian

Метод batch_jacobian класса GradientTape вычисляет матрицу Якоби для каждого отдельного примера в пакете данных. В отличие от метода jacobian, который суммирует градиенты по всему пакету, данный метод сохраняет результат независимо для каждого элемента батча. Первым параметром передаётся целевой тензор, по которому строится якобиан. Вторым параметром указывается тензор или список тензоров, по которым ведётся дифференцирование. Третьим необязательным параметром можно задать режим параллельных вычислений parallel_iterations.

Синтаксис

GradientTape.batch_jacobian(target, sources, parallel_iterations=1)

Пример

Давайте вычислим матрицу Якоби для функции возведения в квадрат, применённой к каждому элементу пакета:

import tensorflow as tf x = tf.constant([1.0, 2.0, 3.0]) with tf.GradientTape() as tape: tape.watch(x) y = x * x res = tape.batch_jacobian(y, x) print(res)

Результат выполнения кода:

tf.Tensor( [[2. 0. 0.] [0. 4. 0.] [0. 6. 0.]], shape=(3, 3), dtype=float32)

Каждая строка полученной матрицы содержит частные производные соответствующего элемента пакета по всем входным переменным.

Пример

Давайте вычислим якобиан для двумерного входного тензора с несколькими переменными:

import tensorflow as tf x = tf.constant([[1.0, 2.0], [3.0, 4.0]]) with tf.GradientTape() as tape: tape.watch(x) y = x * x res = tape.batch_jacobian(y, x) print(res)

Результат выполнения кода:

tf.Tensor( [[[2. 0.] [0. 4.]] [[6. 0.] [0. 8.]]], shape=(2, 2, 2), dtype=float32)

Для каждого примера в пакете формируется отдельная матрица Якоби, что видно по размерности результата.

Смотрите также

  • класс GradientTape,
    который записывает операции для автоматического дифференцирования
  • метод jacobian,
    который вычисляет якобиан с суммированием по пакету
  • метод gradient,
    который вычисляет градиент целевой функции
  • метод watch,
    который начинает отслеживание тензора
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить