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, возвращаемый объект Callable сможет принимать 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 может быть одним элементом графа или произвольно вложенным списком, кортежем, именованным кортежем, словарем или 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