Spec-Zone.ru › TensorFlow 2.4

tf.compat.v1.InteractiveSession

A 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 (Необязательно.) Список ключей ввода. Подробности о допустимых типах ключей ввода см. в 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 с типом данных соответствующего ключа.

Необязательный аргумент 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.4/api_docs/python/tf/compat/v1/InteractiveSession

Spec-Zone.ru

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