| 78 | |
| 79 | |
| 80 | class MLP(model.Model): |
| 81 | |
| 82 | def __init__(self, data_size=10, perceptron_size=100, num_classes=10): |
| 83 | super(MLP, self).__init__() |
| 84 | self.num_classes = num_classes |
| 85 | self.dimension = 2 |
| 86 | |
| 87 | self.relu = layer.ReLU() |
| 88 | self.linear1 = layer.Linear(perceptron_size) |
| 89 | self.linear2 = layer.Linear(num_classes) |
| 90 | self.softmax_cross_entropy = layer.SoftMaxCrossEntropy() |
| 91 | |
| 92 | def forward(self, inputs): |
| 93 | y = self.linear1(inputs) |
| 94 | y = self.relu(y) |
| 95 | y = self.linear2(y) |
| 96 | return y |
| 97 | |
| 98 | def train_one_batch(self, x, y): |
| 99 | out = self.forward(x) |
| 100 | loss = self.softmax_cross_entropy(out, y) |
| 101 | self.optimizer(loss) |
| 102 | return out, loss |
| 103 | |
| 104 | def set_optimizer(self, optimizer): |
| 105 | self.optimizer = optimizer |
| 106 | |
| 107 | |
| 108 | # lstm testing |
no outgoing calls