Download node.py from VLabTech/cognitive_net: direct link, hf CLI and curl.
- Browser
- Download file 1.74 kB
-
https://huggingface.co/VLabTech/cognitive_net/resolve/ca65cded85c9e2de1139eae36de4e3f134f76ac3/node.py
- Command line
-
hf download hf://VLabTech/cognitive_net@ca65cded85c9e2de1139eae36de4e3f134f76ac3/node.py
-
curl -L -o node.py https://huggingface.co/VLabTech/cognitive_net/resolve/ca65cded85c9e2de1139eae36de4e3f134f76ac3/node.py
1.74 kB
| import torch | |
| import torch.nn as nn | |
| from collections import deque | |
| from .memory import CognitiveMemory | |
| class CognitiveNode(nn.Module): | |
| """Node dengan penanganan dimensi terintegrasi""" | |
| def __init__(self, node_id: int, input_size: int): | |
| super().__init__() | |
| self.id = node_id | |
| self.input_size = input_size | |
| # Parameter dengan dimensi yang sesuai | |
| self.weights = nn.Parameter(torch.randn(input_size) * 0.1) | |
| self.bias = nn.Parameter(torch.zeros(1)) | |
| self.memory = CognitiveMemory(context_size=input_size) | |
| # Sistem neuromodulator | |
| self.dopamine = nn.Parameter(torch.tensor(0.5)) | |
| self.serotonin = nn.Parameter(torch.tensor(0.5)) | |
| # Aktivasi terakhir | |
| self.recent_activations = deque(maxlen=100) | |
| def forward(self, inputs: torch.Tensor) -> torch.Tensor: | |
| # Integrasi memori | |
| mem_context = self.memory.retrieve(inputs) | |
| combined = inputs * 0.7 + mem_context * 0.3 | |
| # Aktivasi dengan kontrol dimensi | |
| activation = torch.tanh(torch.dot(combined, self.weights) + self.bias) | |
| modulated = activation * (1 + torch.sigmoid(self.dopamine) | |
| - torch.sigmoid(self.serotonin)) | |
| # Update memori | |
| self.memory.add_memory(inputs, modulated.item()) | |
| self.recent_activations.append(modulated.item()) | |
| return modulated | |
| def update_plasticity(self, reward: float): | |
| """Update neurotransmitter dengan clamping""" | |
| with torch.no_grad(): | |
| self.dopamine.data = torch.clamp(self.dopamine + reward * 0.1, 0, 1) | |
| self.serotonin.data = torch.clamp(self.serotonin - reward * 0.05, 0, 1) |