def forward(self, x, state=None, info={}):
    'x -> Q(x, \\*)'
    if (not isinstance(x, torch.Tensor)):
        x = torch.tensor(x, device=self.device, dtype=torch.float32)
    x = x.permute(0, 3, 1, 2)
    x = F.relu(self.bn1(self.conv1(x)))
    x = F.relu(self.bn2(self.conv2(x)))
    x = F.relu(self.bn3(self.conv3(x)))
    x = self.fc(x.reshape(x.size(0), (- 1)))
    return (self.head(x), state)
x -> Q(x, \*)
def forward(self, x, state=None, info={}):
    'x -> Q(x, \\*)'
    if (not isinstance(x, torch.Tensor)):
        x = torch.tensor(x, device=self.device, dtype=torch.float32)
    x = x.permute(0, 3, 1, 2)
    x = F.relu(self.bn1(self.conv1(x)))
    x = F.relu(self.bn2(self.conv2(x)))
    x = F.relu(self.bn3(self.conv3(x)))
    x = self.fc(x.reshape(x.size(0), (- 1)))
    return (self.head(x), state)