Spec-Zone.ru › TensorFlow 2.3

tf.compat.v1.InteractiveSession

Объект TensorFlow Session для использования в интерактивных контекстах, таких как интерпретатор.

tf.compat.v1.InteractiveSession(
    target='', graph=None, config=None
)

Единственное отличие от обычной Session заключается в том, что InteractiveSession устанавливает себя в качестве стандартной сессии при создании. Методы tf.Tensor.eval и tf.Operation.run будут использовать эту сессию для выполнения операций.

Это удобно в интерактивных оболочках и IPython блокнотах, так как позволяет избежать необходимости передачи явного объекта Session для выполнения операций.

Например:

sess = tf.compat.v1.InteractiveSession()
a = tf.constant(5.0)
b = tf.constant(6.0)
c = a * b
# We can just use 'c.eval()' without passing 'sess'
print(c.eval())
sess.close()

Обратите внимание, что обычная сессия устанавливает себя в качестве стандартной сессии при создании в операторе with. В неинтерактивных программах обычно используется следующий шаблон:

a = tf.constant(5.0)
b = tf.constant(6.0)
c = a * b
with tf.compat.v1.Session():
  # We can also use 'c.eval()' here.
  print(c.eval())
Аргументы
target (Необязательно.) Движок выполнения, к которому нужно подключиться. По умолчанию используется инпроцессный движок.
graph (Необязательно.) Graph для запуска (описано выше).
config (Необязательно) Протокол ConfigProto для конфигурации сессии.
Атрибуты
graph Граф, который был запущен в этой сессии.
graph_def Сериализуемая версия базового графа TensorFlow.
sess_str Процесс TensorFlow, к которому будет подключена эта сессия.

Методы

as_default

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

as_default()

Возвращает менеджер контекста, который делает этот объект стандартной сессией.

Используйте с ключевым словом with для указания того, что вызовы tf.Operation.run или tf.Tensor.eval должны выполняться в этой сессии.

c = tf.constant(..)
sess = tf.compat.v1.Session()

with sess.as_default():
  assert tf.compat.v1.get_default_session() is sess
  print(c.eval())

Чтобы получить текущую стандартную сессию, используйте tf.compat.v1.get_default_session.

Примечание: Менеджер контекста as_default не закрывает сессию при выходе из контекста, и вы должны явно закрыть сессию.
c = tf.constant(...)
sess = tf.compat.v1.Session()
with sess.as_default():
  print(c.eval())
# ...
with sess.as_default():
  print(c.eval())

sess.close()

В качестве альтернативы, вы можете использовать with tf.compat.v1.Session(): для создания сессии, которая автоматически закрывается при выходе из контекста, включая случай возникновения незахваченного исключения.

Примечание: Стандартная сессия является свойством текущей нити. Если вы создаёте новую нить и хотите использовать стандартную сессию в этой нити, вы должны явно добавить with sess.as_default(): в функцию этой нити.
Примечание: Вход в блок with sess.as_default(): не влияет на текущий стандартный граф. Если вы используете несколько графов, и sess.graph отличается от значения tf.compat.v1.get_default_graph, вы должны явно войти в блок with sess.graph.as_default(): чтобы сделать sess.graph стандартным графом.
Возвращает
Менеджер контекста, использующий эту сессию в качестве стандартной сессии.

close

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

close()

Закрывает InteractiveSession.

list_devices

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

list_devices()

Выводит список доступных устройств в этой сессии.

devices = sess.list_devices()
for d in devices:
  print(d.name)

Где:

Каждый элемент в списке имеет следующие свойства

  • name: Строка с полным именем устройства. Пример: /job:worker/replica:0/task:3/device:CPU:0
  • device_type: Тип устройства (например, CPU, GPU, TPU).
  • memory_limit: Максимальный объём памяти, доступной на устройстве. Примечание: в зависимости от устройства, доступная память может быть существенно меньше.
Возможные исключения
tf.errors.OpError Если возникает ошибка (например, сессия находится в недопустимом состоянии или возникают сетевые ошибки).
Возвращает
Список устройств в сессии.

make_callable

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

make_callable(
    fetches, feed_list=None, accept_options=False
)

Возвращает вызываемый объект Python, который выполняет определённый шаг.

Возвращаемый вызываемый объект примет len(feed_list) аргументов, типы которых должны быть совместимы со значениями передачи для соответствующих элементов feed_list. Например, если элемент i из feed_list является tf.Tensor, то i-й аргумент возвращаемого вызываемого объекта должен быть массивом NumPy (или чем-то, что может быть преобразовано в массив NumPy) с соответствующим типом элемента и формой. См. tf.Session.run для получения подробной информации о разрешённых типах ключей и значений передачи.

Возвращаемый вызываемый объект будет иметь тот же тип возвращаемого значения, что и tf.Session.run(fetches, ...). Например, если fetches является tf.Tensor, вызываемый объект вернёт массив NumPy; если fetches является tf.Operation, он вернёт None.

Аргументы
fetches Значение или список значений для извлечения. См. tf.Session.run для получения подробной информации о разрешённых типах извлечения.
feed_list (Необязательно.) Список ключей feed_dict. См. tf.Session.run для получения подробной информации о разрешённых типах ключей передачи.
accept_options (Необязательно.) Если True, возвращаемый вызываемый объект сможет принять tf.compat.v1.RunOptions и tf.compat.v1.RunMetadata в качестве необязательных ключевых аргументов options и run_metadata соответственно, с той же синтаксисом и семантикой, что и tf.Session.run, что полезно в определённых случаях (профилирование и отладка), но приведёт к измеримому замедлению производительности Callable. По умолчанию: False.
Возвращает
Функция, которая при вызове выполнит шаг, определённый feed_list и fetches в этой сессии.
Возможные исключения
TypeError Если fetches или feed_list не могут быть интерпретированы как аргументы tf.Session.run.

partial_run

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

partial_run(
    handle, fetches, feed_dict=None
)

Продолжает выполнение с дополнительными значениями передачи и извлечения.

ЭКСПЕРИМЕНТАЛЬНО и может быть изменено.

Для использования частичного выполнения пользователь сначала вызывает partial_run_setup(), а затем последовательность partial_run(). partial_run_setup определяет список значений передачи и извлечения, которые будут использоваться в последующих вызовах partial_run.

Необязательный аргумент feed_dict позволяет вызывающему объекту переопределять значения тензоров в графе. См. run() для получения дополнительной информации.

Ниже представлен простой пример:

a = array_ops.placeholder(dtypes.float32, shape=[])
b = array_ops.placeholder(dtypes.float32, shape=[])
c = array_ops.placeholder(dtypes.float32, shape=[])
r1 = math_ops.add(a, b)
r2 = math_ops.multiply(r1, c)

h = sess.partial_run_setup([r1, r2], [a, b, c])
res = sess.partial_run(h, r1, feed_dict={a: 1, b: 2})
res = sess.partial_run(h, r2, feed_dict={c: res})
Аргументы
handle Обработчик последовательности частичных запусков.
fetches Одиночный элемент графа, список элементов графа или словарь, значениями которого являются элементы графа или списки элементов графа (см. документацию для run).
feed_dict Словарь, сопоставляющий элементы графа со значениями (описано выше).
Возвращает
Либо одиночное значение, если fetches — одиночный элемент графа, либо список значений, если fetches — список, или словарь с теми же ключами, что и fetches если это словарь (см. документацию для run).
Возможные исключения
tf.errors.OpError Или одно из его подклассов при ошибке.

partial_run_setup

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

partial_run_setup(
    fetches, feeds=None
)

Настраивает граф со значениями передачи и извлечения для частичного выполнения.

ЭКСПЕРИМЕНТАЛЬНО и может быть изменено.

Обратите внимание, что в отличие от run, feeds определяет только элементы графа. Тензоры будут предоставлены последующими вызовами partial_run.

Аргументы
fetches Один элемент графика или список элементов графика.
feeds Один элемент графика или список элементов графика.
Возвращает
Детектор для частичного выполнения.
Возможные исключения
RuntimeError Если этот Session находится в недопустимом состоянии (например, закрыт).
TypeError Если ключи fetches или feed_dict имеют неподходящий тип.
tf.errors.OpError Или один из его подклассов, если произошла ошибка TensorFlow.

run

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

run(
    fetches, feed_dict=None, options=None, run_metadata=None
)

Выполняет операции и вычисляет тензоры в fetches.

Этот метод выполняет один «шаг» вычислений TensorFlow, выполняя необходимый фрагмент графика для выполнения каждой Operation и вычисления каждого Tensor в fetches, подставляя значения в feed_dict соответствующим входным значениям.

Аргумент fetches может быть одним элементом графика или произвольно вложенным списком, кортежем, namedtuple, словарем или OrderedDict, содержащими элементы графика в своих листьях. Элемент графика может быть одного из следующих типов:

  • Операция tf.Operation. Соответствующее полученное значение будет None.
  • Тензор tf.Tensor. Соответствующее полученное значение будет массивом numpy, содержащим значение этого тензора.
  • Разреженный тензор tf.sparse.SparseTensor. Соответствующее полученное значение будет tf.compat.v1.SparseTensorValue, содержащим значение этого разреженного тензора.
  • Операция get_tensor_handle. Соответствующее полученное значение будет массивом numpy, содержащим дескриптор этого тензора.
  • Имя тензора или операции в графе string.

Значение, возвращаемое run() , имеет ту же форму, что и аргумент fetches, где листья заменены соответствующими значениями, возвращёнными TensorFlow.

Пример:

a = tf.constant([10, 20])
b = tf.constant([1.0, 2.0])
# 'fetches' can be a singleton
v = session.run(a)
# v is the numpy array [10, 20]
# 'fetches' can be a list.
v = session.run([a, b])
# v is a Python list with 2 numpy arrays: the 1-D array [10, 20] and the
# 1-D array [1.0, 2.0]
# 'fetches' can be arbitrary lists, tuples, namedtuple, dicts:
MyData = collections.namedtuple('MyData', ['a', 'b'])
v = session.run({'k1': MyData(a, b), 'k2': [b, a]})
# v is a dict with
# v['k1'] is a MyData namedtuple with 'a' (the numpy array [10, 20]) and
# 'b' (the numpy array [1.0, 2.0])
# v['k2'] is a list with the numpy array [1.0, 2.0] and the numpy array
# [10, 20].

Необязательный аргумент feed_dict позволяет вызывающему объекту переопределять значение тензоров в графе. Каждый ключ в feed_dict может быть одного из следующих типов:

  • Если ключ — это tf.Tensor, значение может быть скаляром Python, строкой, списком или массивом numpy, которые можно преобразовать в тот же dtype , что и этот тензор. Кроме того, если ключ — это tf.compat.v1.placeholder, форма значения будет проверена на совместимость с заполнителем.
  • Если ключ — это tf.sparse.SparseTensor, значение должно быть tf.compat.v1.SparseTensorValue.
  • Если ключ — это вложенный кортеж из Tensor или SparseTensor, значение должно быть вложенным кортежем с той же структурой, которая сопоставляет их соответствующим значениям, как указано выше.

Каждое значение в feed_dict должно быть преобразуемо в массив numpy типа dtype соответствующего ключа.

Необязательный аргумент options ожидает протокол [RunOptions]. Параметры позволяют управлять поведением данного шага (например, включать отслеживание).

Необязательный аргумент run_metadata ожидает протокол [RunMetadata]. При необходимости нетензорный результат этого шага будет собран там. Например, когда пользователи включают отслеживание в options, информация о профилировании будет собрана в этот аргумент и возвращена обратно.

Аргументы
fetches Один элемент графика, список элементов графика или словарь, значениями которого являются элементы графика или списки элементов графика (описаны выше).
feed_dict Словарь, который сопоставляет элементы графика с значениями (описаны выше).
options Протокол [RunOptions]
run_metadata Протокол [RunMetadata]
Возвращает
Либо одно значение, если fetches является одним элементом графика, или список значений, если fetches является списком, или словарь с теми же ключами, что и fetches , если это словарь (описан выше). Порядок, в котором fetches операции вычисляются внутри вызова, не определён.
Возможные исключения
RuntimeError Если этот Session находится в недопустимом состоянии (например, закрыт).
TypeError Если ключи fetches или feed_dict имеют неподходящий тип.
ValueError Если ключи fetches или feed_dict недопустимы или ссылаются на Tensor , который не существует.

© 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/r2.3/api_docs/python/tf/compat/v1/InteractiveSession

Spec-Zone.ru

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