Spec-Zone.ru › TensorFlow 1.15

tf.InteractiveSession

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

Просмотр псевдонимов

Псевдонимы для миграции

См. Руководство по миграции для получения более подробной информации.

tf.compat.v1.InteractiveSession

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

Единственное отличие от обычной сессии — в том, что 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
)

Возвращает вызываемую функцию, которая выполняет определённый шаг.

Возвращаемая вызываемая функция принимает 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.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.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/r1.15/api_docs/python/tf/InteractiveSession

Spec-Zone.ru

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