Spec-Zone.ru › TensorFlow

tf.saved_model.experimental.TrackableResource

Содержит тензор, который может захватить tf.function.

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

Совместимые псевдонимы для миграции

Подробнее см. в руководстве по миграции.

tf.compat.v1.saved_model.experimental.TrackableResource

tf.saved_model.experimental.TrackableResource(
    device=''
)

TrackableResource наиболее полезен для тензоров с состоянием, требующих инициализации, например tf.lookup.StaticHashTable. TrackableResources обнаруживаются при обходе графа атрибутов объекта, например во время tf.saved_model.save.

У TrackableResource есть три метода, которые необходимо переопределить:

  • _create_resource должен создавать дескриптор ресурса в виде тензора.
  • _initialize должен инициализировать ресурс, хранящийся в self.resource_handle.
  • _destroy_resource вызывается при уничтожении TrackableResource и должен уменьшать счётчик ссылок ресурса. Для большинства ресурсов это следует делать с помощью вызова tf.raw_ops.DestroyResourceOp.

Пример использования:

class DemoResource(tf.saved_model.experimental.TrackableResource):
  def __init__(self):
    super().__init__()
    self._initialize()
  def _create_resource(self):
    return tf.raw_ops.VarHandleOp(dtype=tf.float32, shape=[2])
  def _initialize(self):
    tf.raw_ops.AssignVariableOp(
        resource=self.resource_handle, value=tf.ones([2]))
  def _destroy_resource(self):
    tf.raw_ops.DestroyResourceOp(resource=self.resource_handle)
class DemoModule(tf.Module):
  def __init__(self):
    self.resource = DemoResource()
  def increment(self, tensor):
    return tensor + tf.raw_ops.ReadVariableOp(
        resource=self.resource.resource_handle, dtype=tf.float32)
demo = DemoModule()
demo.increment([5, 1])
<tf.Tensor: shape=(2,), dtype=float32, numpy=array([6., 2.], dtype=float32)>
Аргументы
device Строка, указывающая, где необходимо разместить этот ресурс, например "CPU", если ресурс должен быть создан на устройстве CPU. Пустое значение устройства позволяет пользователю выбрать место создания ресурса, поэтому обычно здесь следует оставлять пустое значение, если только ресурс не предназначен для конкретного устройства.
Атрибуты
resource_handle Возвращает дескриптор ресурса, связанный с этим ресурсом.

© 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/saved_model/experimental/TrackableResource

Spec-Zone.ru

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