Spec-Zone.ru › TensorFlow

tf.compat.v1.InteractiveSession

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

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

Используется в блокнотах

Используется в учебниках
  • Построение модели смешения распределений Дирихле с использованием динамики градиентного спуска с прекондиционированием
  • Линейная регрессия с эффектами смешанного воздействия в {TF Probability, R, Stan}

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

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

Например:

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, возвращаемый Callable сможет принимать tf.compat.v1.RunOptions и tf.compat.v1.RunMetadata в качестве необязательных ключевых аргументов options и run_metadata соответственно, с той же синтаксисом и семантикой, что и tf.Session.run, что полезно для определённых случаев использования (профилирование и отладка), но приведёт к заметному замедлению производительности вызываемого объекта. По умолчанию: False.
Возвращает
Функция, которая при вызове выполнит шаг, определённый feed_list и fetches в этой сессии.
Возможные исключения
TypeError Если fetches или feed_list нельзя интерпретировать как аргументы для tf.Session.run.

partial_run

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

partial_run(
    handle, fetches, feed_dict=None
)

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

Устарело: ЭТА ФУНКЦИЯ УСТАРЕЛА. Она будет удалена после 2023-06-01. Инструкции по обновлению: Данная функция устарела, и мы не планируем добавлять к ней новые возможности. Пожалуйста, не делайте свою программу зависимой от этой функции.
Примечание: Эта функция устарела, и мы не ожидаем добавления новой функциональности. Пожалуйста, не делайте вашу код зависимым от этой функции.

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

Для использования частичного выполнения пользователь сначала вызывает 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
)

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

Устарело: ЭТА ФУНКЦИЯ УСТАРЕЛА. Она будет удалена после 2023-06-01. Инструкции по обновлению: Эта функция устарела, и мы не ожидаем добавления новой функциональности. Пожалуйста, не делайте вашу код зависимым от этой функции.
Примечание: Эта функция устарела, и мы не ожидаем добавления новой функциональности. Пожалуйста, не делайте вашу код зависимым от этой функции.

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

Обратите внимание, что в отличие от 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, которого нет.

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

Spec-Zone.ru

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