Update. master
authorFrancois Fleuret <francois@fleuret.org>
Sat, 6 Aug 2022 12:29:34 +0000 (14:29 +0200)
committerFrancois Fleuret <francois@fleuret.org>
Sat, 6 Aug 2022 12:29:34 +0000 (14:29 +0200)
mlp.pdf
mlp.py

diff --git a/mlp.pdf b/mlp.pdf
index 0a7b858..3fc616a 100644 (file)
Binary files a/mlp.pdf and b/mlp.pdf differ
diff --git a/mlp.py b/mlp.py
index 21d166b..4bf5841 100755 (executable)
--- a/mlp.py
+++ b/mlp.py
 
 import subprocess
 
+import torch
 from torch import nn
-from torch.nn import functional as fn
-from torch import Tensor
 from torch.nn import Module
 
 import agtree2dot
 
 class MLP(Module):
     def __init__(self, input_dim, hidden_dim, output_dim):
-        super(MLP, self).__init__()
+        super().__init__()
         self.fc1 = nn.Linear(input_dim, hidden_dim)
         self.fc2 = nn.Linear(hidden_dim, output_dim)
 
     def forward(self, x):
         x = self.fc1(x)
-        x = fn.tanh(x)
+        x = torch.tanh(x)
         x = self.fc2(x)
         return x
 
 mlp = MLP(10, 20, 1)
-input = Tensor(100, 10).normal_()
-target = Tensor(100, 1).normal_()
-output = mlp(input)
 criterion = nn.MSELoss()
+
+input = torch.randn(100, 10)
+target = torch.randn(100, 1)
+
+output = mlp(input)
+
 loss = criterion(output, target)
 
 agtree2dot.save_dot(loss,