maine_learning:extream_learning_machine
차이
문서의 선택한 두 판 사이의 차이를 보여줍니다.
| 양쪽 이전 판이전 판다음 판 | 이전 판 | ||
| maine_learning:extream_learning_machine [2020/10/26 16:34] – [간단한 구현] rex8312 | maine_learning:extream_learning_machine [2024/03/23 02:42] (현재) – 바깥 편집 127.0.0.1 | ||
|---|---|---|---|
| 줄 26: | 줄 26: | ||
| class ELM: | class ELM: | ||
| - | def __init__(self, | + | def __init__(self, |
| - | self.input_size = input_dim | + | self.input_size = x.shape[-1] |
| - | self.hidden_size = hidden_dim | + | |
| + | self.hidden_size = int(x.shape[0] / 7) | ||
| + | else: | ||
| + | | ||
| self.input_weights = np.random.normal(size=[self.input_size, | self.input_weights = np.random.normal(size=[self.input_size, | ||
| self.biases = np.random.normal(size=[self.hidden_size]) | self.biases = np.random.normal(size=[self.hidden_size]) | ||
| - | + | | |
| - | def relu(self, x): | + | |
| - | return | + | |
| def hidden_nodes(self, | def hidden_nodes(self, | ||
| G = np.dot(X, self.input_weights) + self.biases | G = np.dot(X, self.input_weights) + self.biases | ||
| - | | + | |
| + | H = relu(G) | ||
| return H | return H | ||
| - | |||
| - | def fit(self, x, y): | ||
| - | self.output_weights = np.dot(pinv2(self.hidden_nodes(x)), | ||
| def __call__(self, | def __call__(self, | ||
| 줄 60: | 줄 59: | ||
| train_x, train_y = X[mask], y[mask] | train_x, train_y = X[mask], y[mask] | ||
| test_x, test_y = X[~mask], y[~mask] | test_x, test_y = X[~mask], y[~mask] | ||
| - | model = ELM(X.shape[-1], y.shape[-1], n_hidden) | + | model = ELM(train_x, train_y, n_hidden) |
| - | model.fit(train_x, | + | |
| loss = (0.5 * (test_y - model(test_x)) ** 2).mean() | loss = (0.5 * (test_y - model(test_x)) ** 2).mean() | ||
| losses.append(loss) | losses.append(loss) | ||
| print(plotille.plot(n_hiddens, | print(plotille.plot(n_hiddens, | ||
| + | |||
| + | model = ELM(train_x, | ||
| + | loss = (0.5 * (test_y - model(test_x)) ** 2).mean() | ||
| + | embed(); exit() | ||
| </ | </ | ||
maine_learning/extream_learning_machine.1603730040.txt.gz · 마지막으로 수정됨: (바깥 편집)