def __init__(self, context: det.TrialContext) -> None: self.context = context self.data_config = context.get_data_config() self.criterion = CrossEntropyLabelSmooth( context.get_hparam("num_classes"), # num classes context.get_hparam("label_smoothing_rate"), ) self.last_epoch_idx = -1
def __init__(self, context: det.TrialContext) -> None: self.context = context self.data_config = context.get_data_config() self.num_classes = { "train": context.get_hparam("num_classes_train"), "val": context.get_hparam("num_classes_val"), } self.num_support = { "train": context.get_hparam("num_support_train"), "val": context.get_hparam("num_support_val"), } self.num_query = { "train": context.get_hparam("num_query_train"), "val": None, # Use all available examples for val at meta-test time } self.get_train_valid_splits()
def __init__(self, context: det.TrialContext) -> None: super().__init__() # Set hyperparameters that influence the model architecture. self.n_filters1 = context.get_hparam("n_filters1") self.n_filters2 = context.get_hparam("n_filters2") self.dropout = context.get_hparam("dropout") # Define the central model. self.model = nn.Sequential( nn.Conv2d(1, self.n_filters1, kernel_size=5), nn.MaxPool2d(2), nn.ReLU(), nn.Conv2d(self.n_filters1, self.n_filters2, kernel_size=5), nn.MaxPool2d(2), nn.ReLU(), Flatten(), nn.Linear(16 * self.n_filters2, 50), nn.ReLU(), nn.Dropout2d(self.dropout), ) # type: nn.Sequential # Predict digit labels from self.model. self.digit = nn.Sequential(nn.Linear(50, 10), nn.Softmax(dim=0)) # Predict binary labels from self.model. self.binary = nn.Sequential(nn.Linear(50, 1), nn.Sigmoid(), Squeeze())