Spec-Zone.ru › TensorFlow 1.15

tf.contrib.opt.ScipyOptimizerInterface

Оборачивание, позволяющее scipy.optimize.minimize управлять tf.compat.v1.Session.

Наследуется от: ExternalOptimizerInterface

tf.contrib.opt.ScipyOptimizerInterface(
    loss, var_list=None, equalities=None, inequalities=None, var_to_bounds=None,
    **optimizer_kwargs
)

Пример:

vector = tf.Variable([7., 7.], 'vector')

# Make vector norm as small as possible.
loss = tf.reduce_sum(tf.square(vector))

optimizer = ScipyOptimizerInterface(loss, options={'maxiter': 100})

with tf.compat.v1.Session() as session:
  optimizer.minimize(session)

# The value of vector should now be [0., 0.].

Пример с простыми ограничениями на границы:

vector = tf.Variable([7., 7.], 'vector')

# Make vector norm as small as possible.
loss = tf.reduce_sum(tf.square(vector))

optimizer = ScipyOptimizerInterface(
    loss, var_to_bounds={vector: ([1, 2], np.infty)})

with tf.compat.v1.Session() as session:
  optimizer.minimize(session)

# The value of vector should now be [1., 2.].

Пример с более сложными ограничениями:

vector = tf.Variable([7., 7.], 'vector')

# Make vector norm as small as possible.
loss = tf.reduce_sum(tf.square(vector))
# Ensure the vector's y component is = 1.
equalities = [vector[1] - 1.]
# Ensure the vector's x component is >= 1.
inequalities = [vector[0] - 1.]

# Our default SciPy optimization algorithm, L-BFGS-B, does not support
# general constraints. Thus we use SLSQP instead.
optimizer = ScipyOptimizerInterface(
    loss, equalities=equalities, inequalities=inequalities, method='SLSQP')

with tf.compat.v1.Session() as session:
  optimizer.minimize(session)

# The value of vector should now be [1., 1.].
Аргументы
loss Скаляр Tensor для минимизации.
var_list Необязательный список list объектов Variable для обновления для минимизации loss. По умолчанию — список переменных, собранных в графе по ключу GraphKeys.TRAINABLE_VARIABLES.
equalities Необязательный список скалярных Tensor ограничений на равенство, которые должны быть равны нулю.
inequalities Необязательный список скалярных Tensor ограничений на неравенство, которые должны быть неотрицательными.
var_to_bounds Необязательный словарь, где каждый ключ — оптимизационная Variable, а соответствующее значение — кортеж длиной 2 с (low, high) границами. Хотя применение этого рода простых ограничений можно осуществить с помощью аргумента inequalities, не все алгоритмы оптимизации поддерживают общие ограничения на неравенство, например, L-BFGS-B. И low, и high могут быть числами или чем-либо, преобразуемым в массив NumPy, который можно транслировать в форму var (используя np.broadcast_to). Для указания отсутствия границ используйте None (или +/- np.infty). Например, если var — это матрица 2x3, то соответствующие bounds могут быть заданы следующим образом:
  • (0, np.infty): Каждый элемент var больше нуля.
  • (-np.infty, [1, 2]): Первый столбец меньше 1, второй столбец меньше 2.
  • (-np.infty, [[1], [2], [3]]): Первая строка меньше 1, вторая строка меньше 2 и т. д.
  • (-np.infty, [[1, 2, 3], [4, 5, 6]]): Элемент var[0, 0] меньше 1, var[0, 1] меньше 2 и т. д.
**optimizer_kwargs Другие аргументы, специфичные для подкласса.

Методы

minimize

Просмотреть исходный код

minimize(
    session=None, feed_dict=None, fetches=None, step_callback=None,
    loss_callback=None, **run_kwargs
)

Минимизация скалярного Tensor.

Переменные, подлежащие оптимизации, обновляются непосредственно в конце оптимизации.

Обратите внимание, что этот метод не просто возвращает результат минимизации, в отличие от Optimizer.minimize(); вместо этого он фактически выполняет минимизацию, выполняя команды для управления Session.

Аргументы
session Экземпляр Session .
feed_dict Словарь feed, передаваемый в вызовы session.run.
fetches Список Tensor для извлечения и передачи loss_callback в качестве позиционных аргументов.
step_callback Функция, вызываемая на каждом шаге оптимизации; аргументы — текущие значения всех переменных оптимизации, сжатые в один вектор.
loss_callback Функция, вызываемая каждый раз при вычислении потери и градиентов, с предоставленными значениями fetch в качестве позиционных аргументов.
**run_kwargs Аргументы kwargs для передачи в session.run.

© 2020 The TensorFlow Authors. All rights reserved.
Licensed under the Creative Commons Attribution License 3.0.
Code samples licensed under the Apache 2.0 License.
https://www.tensorflow.org/versions/r1.15/api_docs/python/tf/contrib/opt/ScipyOptimizerInterface

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API