Spec-Zone.ru › TensorFlow 2.9

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

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

Необязательный аргумент 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 , которого нет.

© 2022 The TensorFlow Authors. All rights reserved.
Licensed under the Creative Commons Attribution License 4.0.
Code samples licensed under the Apache 2.0 License.
https://www.tensorflow.org/versions/r2.9/api_docs/python/tf/compat/v1/InteractiveSession

Spec-Zone.ru

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