args.lambda_filters = 2**args.lambda_filters
args.step_size = 2**args.step_size
num_classes = 10
print(args)

save_dir = args.save_path
save_file = os.path.join(
    save_dir,
    str(args.hessian_reg) + '_' + str(args.incomplete_scheme) + '_' +
    str(args.lambda_filters) + '_' + str(args.num_filters) + '_' +
    str(args.seed) + '_' + str(args.step_size) + '_' + str(time.time()))
if not os.path.exists(save_dir):
    os.makedirs(save_dir)

# Create the data loaders
train_loader, valid_loader, test_loader = mnist.get_dataloaders(
    batch_size=args.batch_size, data_path=args.data_path, num_workers=4)

# Load and initialize the model
model = lenet.LeNet1(nfilters=args.num_filters,
                     locally_connected_layer=args.incomplete_scheme,
                     bias=True)
if torch.cuda.device_count() > 1:
    model = nn.DataParallel(model).to(defaults.device)
    model.module.apply(lenet.init_normal)
else:
    model.to(defaults.device).apply(lenet.init_normal)
print('Done with the initialization')

# Create the step size and lambda filters schedules
if args.step_size_method == 'fixed':
    step_size_schedule = None
Beispiel #2
0
    max_frac_points_class = args.max_frac_points_class
    print('Bounds on the fraction of points per class:', min_frac_points_class,
          max_frac_points_class)
else:
    balanced_version = True
    min_frac_points_class = 0.1
    max_frac_points_class = 0.1

nclasses = 10
bw = 0.6
ckn = True

# Create the data loaders
train_loader, _, train_labeled_loader, train_unlabeled_loader, valid_loader, train_valid_loader, test_loader = \
    mnist.get_dataloaders(batch_size=args.batch_size, batch_size_labeled=args.batch_size_labeled,
                          batch_size_unlabeled=args.batch_size_unlabeled, num_labeled=args.num_labeled,
                          stratified_sampling=False, stratified_unlabeling=args.balanced,
                          unlabeled_imbalance=args.imbalance, data_path=args.data_path, num_workers=0, seed=args.seed)

save_dir = args.save_path
save_file = save_dir + str(args.num_labeled) + '_' + str(args.imbalance) + '_' + str(args.num_filters) + '_' + str(bw) \
            + '_' + str(args.lr_sup_init) + '_' + str(args.lr_semisup) + '_' + \
            '-'.join(str(args.labeling_method).split(' ')) + '_' + str(args.lam) + '_' + str(args.lambda_pix) + '_0_' +\
            str(args.max_frac_points_class) + '_' + str(args.num_clusters) + '_' + str(args.update_clusters_every) + \
            '_' + str(args.seed) + '_' + str(time.time())

if not os.path.exists(save_dir):
    os.makedirs(save_dir)

# Load and initialize the model
params = parse_config.load_config('../../cfg/lenet-5_ckn.cfg')
if args.num_filters > 0: