| 1 | class Params(object): |
| 2 | KEY_MODEL_PARAMS = "model_params" |
| 3 | """ |
| 4 | Unified Parameter Object for passing arguments among APIs |
| 5 | from the algorithm frame (e.g., client_trainer.py and server aggregator.py). |
| 6 | |
| 7 | Usage:: |
| 8 | >> my_params = Params() |
| 9 | >> # add parameter |
| 10 | >> my_params.add(name="w", param=model_weights) |
| 11 | >> # get parameter |
| 12 | >> my_params.w |
| 13 | """ |
| 14 | |
| 15 | def __init__(self, **kwargs): |
| 16 | self.__dict__.update(kwargs) |
| 17 | |
| 18 | def add(self, name: str, value): |
| 19 | self.__dict__[name] = value |
| 20 | |
| 21 | def get(self, name: str): |
| 22 | if not hasattr(self, name): |
| 23 | return None |
| 24 | return getattr(self, name) |
| 25 | |
| 26 | def keys(self): |
| 27 | return self.__dict__.keys() |
| 28 | |
| 29 | def values(self): |
| 30 | return self.__dict__.values() |
no outgoing calls