|
1 | 1 | from collections import OrderedDict, namedtuple
|
2 | 2 | from typing import Union, Tuple, Any, Callable, Iterator, Set, Optional, overload, TypeVar, Mapping, Dict, List
|
3 | 3 | from typing import Any
|
4 |
| -from ...tensor_array.core import tensor2 as t |
| 4 | +from tensor_array.core import tensor2 as t |
5 | 5 | from .parameter import Parameter
|
6 | 6 |
|
7 | 7 | class Layer:
|
8 |
| - _layers = Dict[str, Optional['Layer']] |
9 |
| - _parameters = Dict[str, Optional[Parameter]] |
10 |
| - _tensors = Dict[str, Optional[t.Tensor]] |
| 8 | + is_running: bool |
| 9 | + _layers: Dict[str, Optional['Layer']] |
| 10 | + _parameters: Dict[str, Optional[Parameter]] |
| 11 | + _tensors: Dict[str, Optional[t.Tensor]] |
11 | 12 |
|
12 | 13 | def __init__(self) -> None:
|
| 14 | + super().__setattr__('is_running', False) |
13 | 15 | super().__setattr__('_layers', OrderedDict())
|
14 | 16 | super().__setattr__('_parameters', OrderedDict())
|
15 | 17 | super().__setattr__('_tensors', OrderedDict())
|
16 | 18 |
|
17 | 19 | def __call__(self, *args: Any, **kwds: Any) -> Any:
|
| 20 | + if not self.__dict__.get('is_running'): |
| 21 | + self.init_value(args, kwds) |
| 22 | + self.calculate(args, kwds) |
| 23 | + |
| 24 | + def init_value(self, *args: Any, **kwds: Any) -> Any: |
| 25 | + pass |
| 26 | + |
| 27 | + def calculate(self, *args: Any, **kwds: Any) -> Any: |
18 | 28 | pass
|
19 | 29 |
|
20 | 30 | def register_parameter(self, name: str, param: Optional[Parameter]) -> None:
|
|
0 commit comments