Spec-Zone.ru › TensorFlow 1.15

tf.contrib.eager.Сеть

Представляет собой композицию набора слоев.

Наследуется от: Layer

tf.contrib.eager.Network(
    name=None
)

Устаревший. Пожалуйста, наследуйте от tf.keras.Model и обратитесь к его документации для получения подробностей. tf.keras.Model должен быть прямым заменителем tfe.Network в большинстве случаев, но обратите внимание, что track_layer больше не нужен или не поддерживается. Вместо этого экземпляры Layer отслеживаются при присваивании атрибутов (см. раздел документации tf.keras.Model по наследованию). Поскольку результат track_layer часто присваивается атрибуту, большая часть кода может быть перенесена путем простого удаления вызовов track_layer.

tf.keras.Model работает со всеми экземплярами TensorFlow Layer, включая те, которые из tf.layers, но рекомендуется переключиться на версии tf.keras.layers вместе с миграцией на tf.keras.Model, так как это сохранит имена переменных. Не стесняйтесь импортировать его с псевдонимом, чтобы избежать излишней ввода :).

Network реализует интерфейс Layer и добавляет удобные методы для управления подслоями Layer, такие как перечисление переменных.

Слои (включая другие Networkы) должны быть добавлены с помощью track_layer. Их можно использовать при переопределении метода Network.call:

class TwoLayerNetwork(tfe.Network):

  def __init__(self, name):
    super(TwoLayerNetwork, self).__init__(name=name)
    self.layer_one = self.track_layer(tf.compat.v1.layers.Dense(16,
    input_shape=(8,)))
    self.layer_two = self.track_layer(tf.compat.v1.layers.Dense(1,
    input_shape=(16,)))

  def call(self, inputs):
    return self.layer_two(self.layer_one(inputs))

После создания объекта и вызова Network, список переменных, созданных отслеживаемыми Layerами, доступен через Network.variables:

net = TwoLayerNetwork(name="net")
output = net(tf.ones([1, 8]))
print([v.name for v in net.variables])

Этот пример выводит имена переменных, по одному ядру и одному смещению на слой tf.compat.v1.layers.Dense:

['net/dense/kernel:0',
 'net/dense/bias:0',
 'net/dense_1/kernel:0',
 'net/dense_1/bias:0']

Эти переменные могут быть переданы в Saver (tf.compat.v1.train.Saver или tf.contrib.eager.Saver при выполнении в режиме Eager) для сохранения или восстановления Network, как правило, вместе с глобальным шагом и переменными tf.compat.v1.train.Optimizer при контрольных точках во время обучения.

Обратите внимание, что семантика вызова Network с выполнением графа (то есть не выполняя его жадно) может незначительно измениться в будущем. В настоящее время операторы с состоянием удаляются из графа, если они или что-то, что от них зависит, не выполняются в сессии, но это поведение не соответствует выполнению Eager (где операторы с состоянием выполняются жадно). Network из tf.layers не зависят от этого усечения и поэтому не будут затронуты, но Network которые полагаются на добавление операторов с состоянием в граф, но не на их выполнение (например, с помощью настраиваемых Layer которые управляют операторами с состоянием), могут сломаться из-за этого изменения.

Args
name Имя, которое нужно использовать для этой Network. Если указано, оно должно быть уникальным в контексте, где эта Network в первый раз (1) добавляется к другой Network (в этом случае оно не должно совпадать с именами других Layers добавленных к этой Network), или (2) построено/вызвано (в этом случае другие 'глобальные' Networkы не должны иметь это имя). Если не указано или равно None, Network получит имя по своему классу, с добавлением номера, если это необходимо для уникальности (например, MyNetwork -> 'my_network_1').
Raises
ValueError Если name недействителен. Обратите внимание, что некоторые ошибки именования вместо этого будут подняты при вызове Network.
Attributes
graph УСТАРЕВШАЯ ФУНКЦИЯ
Предупреждение: ЭТА ФУНКЦИЯ УСТАРЕЛА. Она будет удалена в будущих версиях. Инструкции по обновлению: прекратите использовать этот параметр, так как слои tf.layers больше не отслеживают свой граф.
layers
scope_name

Методы

get_layer

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

get_layer(
    name=None, index=None
)

Получить содержащийся tf.compat.v1.layers.Layer по имени или индексу.

Args
name Строка, соответствующая одному из имен содержащегося Layer. Обратите внимание, что имена Layer добавленных к Network могут не быть уникальными при использовании совместного использования слоев (т. е. добавление Layer к этому Network, который уже был добавлен к другому Network). Наименьший индекс Layer с совпадающим именем будет возвращен.
index Целое число в [0, количество слоев). Слоям присваивается индекс в порядке их добавления.
Returns
Объект tf.compat.v1.layers.Layer.
Raises
ValueError Если ни один, ни оба из 'index' или 'name' не указаны, или поиск не удался.

track_layer

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

track_layer(
    layer
)

Отследить слой в этой сети.

Network требует, чтобы все Layer используемые в call() были отслеживаемы, чтобы Network мог экспортировать полный список переменных.

Args
layer Объект tf.compat.v1.layers.Layer.
Returns
Переданный layer.
Raises
RuntimeError Если init не был вызван.
TypeError Если layer имеет неправильный тип.
ValueError Если Layer с таким же именем уже был добавлен.

© 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/contrib/eager/Network

Spec-Zone.ru

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