Beispiel #1
0
 def __setitem__(self, key, value):
     if key is None:
         value = sticky_attribute_assignment(trackable=self,
                                             value=value,
                                             name=self.__class__._SINGLETON)
     else:
         value = sticky_attribute_assignment(trackable=self,
                                             value=value,
                                             name=key)
     super().__setitem__(key, value)
 def __setattr__(self, name, value):
     """Support self.foo = trackable syntax."""
     if getattr(self, "_self_setattr_tracking", True):
         value = data_structures.sticky_attribute_assignment(trackable=self,
                                                             value=value,
                                                             name=name)
     super(AutoTrackable, self).__setattr__(name, value)
  def __setattr__(self, name, value):
    """Support self.foo = trackable syntax."""
    try:
      if getattr(self, name) is value:
        # Short circuit for `self.$x = self.$x`.
        return
    except AttributeError:
      pass

    if getattr(self, "_self_setattr_tracking", True):
      value = data_structures.sticky_attribute_assignment(
          trackable=self, value=value, name=name)
    super(AutoTrackable, self).__setattr__(name, value)
Beispiel #4
0
    def __setattr__(self, name, value):
        """Support self.foo = trackable syntax.

    Redefined from `tensorflow/python/training/tracking/tracking.py` to avoid
    calling `getattr`, which causes an infinite loop.

    Args:
      name: str, name of the attribute to be set.
      value: value to be set.
    """
        if vars(self).get(name, _NOT_FOUND) is value:
            return

        if vars(self).get('_self_setattr_tracking', True):
            value = data_structures.sticky_attribute_assignment(trackable=self,
                                                                value=value,
                                                                name=name)
        object.__setattr__(self, name, value)
Beispiel #5
0
 def __setitem__(self, key, value):
     value = sticky_attribute_assignment(trackable=self, value=value, name=key)
     super().__setitem__(key, value)
Beispiel #6
0
 def __setattr__(self, name, value):
   """Support self.foo = trackable syntax."""
   if getattr(self, "_self_setattr_tracking", True):
     value = data_structures.sticky_attribute_assignment(
         trackable=self, value=value, name=name)
   super(AutoTrackable, self).__setattr__(name, value)