(self, name, value)
| 239 | type(self).__name__, name)) |
| 240 | |
| 241 | def __setattr__(self, name, value): |
| 242 | if isinstance(value, Layer): |
| 243 | # TODO: remove the attr from dict first |
| 244 | self.__dict__['_layers'][name] = value |
| 245 | value.__dict__['_parent'] = self |
| 246 | value.name = self._get_name_prefix() + name |
| 247 | else: |
| 248 | object.__setattr__(self, name, value) |
| 249 | if isinstance(value, Tensor) and value.is_dummy(): |
| 250 | # WARN: If tensors are initialized in __init__ function |
| 251 | # their names may be incorrect and should be reset |
| 252 | value.name = self._get_name_prefix() + name |
| 253 | elif name == 'name' and value: |
| 254 | # WARN: can't reset the name after the initialization |
| 255 | # update sublayer name |
| 256 | for name, sublayer in self._layers.items(): |
| 257 | sublayer.name = self._get_name_prefix() + name |
| 258 | |
| 259 | def __delattr__(self, name): |
| 260 | if name in self._layers: |
nothing calls this directly
no test coverage detected