| import torch | |
| import torch.nn as nn | |
| class PerceptionAgent(nn.Module): | |
| def __init__(self, config): | |
| super(PerceptionAgent, self).__init__() | |
| self.cnn_layers = nn.Sequential( | |
| nn.Conv2d(3, 16, kernel_size=3, stride=1, padding=1), | |
| nn.ReLU(), | |
| nn.MaxPool2d(kernel_size=2, stride=2), | |
| # Additional layers can be defined based on config | |
| ) | |
| self.fc_layers = nn.Sequential( | |
| nn.Linear(16 * 32 * 32, 256), | |
| nn.ReLU(), | |
| nn.Linear(256, config["perception_output_size"]) | |
| ) | |
| def forward(self, x): | |
| x = self.cnn_layers(x) | |
| x = x.view(x.size(0), -1) | |
| x = self.fc_layers(x) | |
| return x | |