(self, max_epoch)
| 200 | |
| 201 | timeout = 1000 |
| 202 | def train(self, max_epoch): |
| 203 | for epoch in range(max_epoch): |
| 204 | z = np.matmul(self.X_train, self.W) |
| 205 | A = 1 / (1 + np.exp(-z)) # sigmoid(z) |
| 206 | loss = -np.mean(self.Y_train * np.log(A) + (1-self.Y_train) * np.log(1-A)) |
| 207 | dz = A - self.Y_train |
| 208 | dw = (1/self.size) * np.matmul(self.X_train.T, dz) |
| 209 | self.W = self.W - self.alpha*dw |
| 210 | |
| 211 | def setup(self, dtype): |
| 212 | np.random.seed(42) |