batch_size_test=args.batch_size_test) model = ConvNet1(input_size=[28, 28], input_channels=1, output_class=10) device_ids, model = parse_device_alloc(device_config=None, model=model) lr_func = parse_lr(policy=args.lr_policy, epoch_num=args.epoch_num) optimizer = parse_optim(policy=args.optim_policy, params=model.parameters()) setup_config = {kwarg: value for kwarg, value in args._get_kwargs()} setup_config['lr_list'] = [lr_func(idx) for idx in range(args.epoch_num)] if not os.path.exists(args.output_folder): os.makedirs(args.output_folder) tricks = {} if args.snapshots != None: tricks['snapshots'] = args.snapshots results = train_test(setup_config=setup_config, model=model, train_loader=train_loader, test_loader=test_loader, epoch_num=args.epoch_num, optimizer=optimizer, lr_func=lr_func, output_folder=args.output_folder, model_name=args.model_name, device_ids=device_ids, **tricks)
'test_safe_distance': {}, 'guaranteed_distances': [] } for param in list(sorted(tosave['setup_config'].keys())): print('%s\t=>%s' % (param, tosave['setup_config'][param])) # Train train_test(model=model, train_loader=train_loader, test_loader=test_loader, attacker=attacker, epoch_num=args.epochs, optimizer=optimizer, out_folder=args.out_folder, model_name=args.model_name, bound_est=args.bound_est, alpha_list=alpha_list, eps_list=eps_list, gamma_list=gamma_list, T=args.T, norm=norm, device=device, criterion=criterion, tosave=tosave, at_per=args.at_per, pixel_range=args.pixel_range, update_freq=args.update_freq, bound_calc_per_batch=args.bound_calc_per_batch, regularize_mode=args.regularize_mode)