code: def forward(self, x):
      # switched order of pooling and relu compared to the original example
      # to make it identical to the keras worker
      # seems to also give better accuracies
      x = F.max_pool2d(F.relu(self.conv1(x)), 2)
  
      if not self.conv2 is None:
          x = F.max_pool2d(F.relu(self.conv2(x)), 2)
  
      if not self.conv3 is None:
          x = F.max_pool2d(F.relu(self.conv3(x)), 2)
  
      x = self.dropout(x)
  
      x = x.view(-1, self.conv_output_size)
      x = F.relu(self.fc1(x))
      x = self.dropout(x)
      x = self.fc2(x)
      return F.log_softmax(x, dim=1)
  
file_path: HpBandSter/docs/build/html/_downloads/example_5_pytorch_worker.py
imports: import ConfigSpace
  import ConfigSpace.hyperparameters
  from hpbandster.core.worker import Worker
  import logging
label_desc: Use image node_id 2 for calling the MNISTConvNet obj's underlying member method code with example usage: obj.forward(x) and returns: F