Advertisement
blufzzz

Adj_grad hebbian model

Jul 10th, 2022
798
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 1.51 KB | None | 0 0
  1. # class MLP_adjacent(nn.Module):
  2.    
  3. #     def __init__(self):
  4.    
  5. #         super().__init__()
  6.    
  7. #         self.W_1 = nn.Parameter(torch.zeros(10, 3), requires_grad=False).to(device)
  8. #         self.f_1 = universal_approximator(10, requires_grad=True).to(device)
  9.  
  10. #         self.W_2 = nn.Parameter(torch.zeros(10, 10), requires_grad=False).to(device)
  11. #         self.f_2 = universal_approximator(10, requires_grad=True).to(device)
  12.  
  13. #         self.W_3 = nn.Parameter(torch.zeros(2, 10), requires_grad=False).to(device)
  14. #         self.f_3 = universal_approximator(2, requires_grad=True).to(device)
  15.            
  16. #         self.λ = 1e-3    
  17.            
  18. #         init_weights(self)
  19.        
  20. #     def update(self):
  21.        
  22. #         self.W_1 = self.W_1 + self.λ*dW1
  23. #         self.W_1 = self.W_1 + self.λ*dW1
  24. #         self.W_1 = self.W_1 + self.λ*dW1
  25.        
  26.  
  27. #     def forward(self, X):
  28.  
  29. #         Y1 = self.f_1(self.W_1@X)
  30. #         dW1 = criterion_rule(X, Y1, self.W_1)
  31. #         self.W_1 = self.W_1 + self.λ*dW1
  32. #         # updated pass
  33. #         Y1 = self.f_1(self.W_1@X)
  34.  
  35. #         Y2 = self.f_2(self.W_2@Y1)
  36. #         dW2 = criterion_rule(Y1, Y2, self.W_2)
  37. #         self.W_2 = self.W_2 + self.λ*dW2
  38. #         # updated pass
  39. #         Y2 = self.f_2(self.W_2@Y1)
  40.  
  41. #         Y3 = self.f_3(self.W_3@Y2)
  42. #         dW3 = criterion_rule(Y2, Y3, self.W_3)
  43. #         self.W_3 = self.W_3 + self.λ*dW3
  44. #         # updated pass
  45. #         Y3 = self.f_3(self.W_3@Y2)
  46.        
  47. #         return Y3
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement