| 74 | c.gradients[k] = np.zeros_like(v) |
| 75 | |
| 76 | def set_params(self, summary_dict): |
| 77 | cids = self.hyperparameters["component_ids"] |
| 78 | for k, v in summary_dict["parameters"].items(): |
| 79 | if k == "components": |
| 80 | for c, cd in summary_dict["parameters"][k].items(): |
| 81 | if c in cids: |
| 82 | getattr(self, c).set_params(cd) |
| 83 | |
| 84 | elif k in self.parameters: |
| 85 | self.parameters[k] = v |
| 86 | |
| 87 | for k, v in summary_dict["hyperparameters"].items(): |
| 88 | if k == "components": |
| 89 | for c, cd in summary_dict["hyperparameters"][k].items(): |
| 90 | if c in cids: |
| 91 | getattr(self, c).set_params(cd) |
| 92 | |
| 93 | if k in self.hyperparameters: |
| 94 | if k == "act_fn" and v == "ReLU": |
| 95 | self.hyperparameters[k] = ReLU() |
| 96 | elif v == "act_fn" and v == "Sigmoid": |
| 97 | self.hyperparameters[k] = Sigmoid() |
| 98 | elif v == "act_fn" and v == "Tanh": |
| 99 | self.hyperparameters[k] = Tanh() |
| 100 | elif v == "act_fn" and "Affine" in v: |
| 101 | r = r"Affine\(slope=(.*), intercept=(.*)\)" |
| 102 | slope, intercept = re.match(r, v).groups() |
| 103 | self.hyperparameters[k] = Affine(float(slope), float(intercept)) |
| 104 | elif v == "act_fn" and "Leaky ReLU" in v: |
| 105 | r = r"Leaky ReLU\(alpha=(.*)\)" |
| 106 | alpha = re.match(r, v).groups()[0] |
| 107 | self.hyperparameters[k] = LeakyReLU(float(alpha)) |
| 108 | else: |
| 109 | self.hyperparameters[k] = v |
| 110 | |
| 111 | def summary(self): |
| 112 | return { |