def main(): parser = argparse.ArgumentParser() # input and output parser.add_argument('--input_dir', required=True) parser.add_argument('--save_dir', required=True, help='path to save checkpoints and logs') parser.add_argument('--ckpt', required=True) # training parameters parser.add_argument('--batch_size', default=256, type=int) parser.add_argument('--seed', type=int, default=666, help='random seed') # validating parameters # parser.add_argument('--num_return_sequences', default=1, type=int) # parser.add_argument('--top_p', default=) # model hyperparameters parser.add_argument('--dim_hidden', default=1024, type=int) parser.add_argument('--alpha', default=1e-4, type=float) args = parser.parse_args() if not os.path.exists(args.save_dir): os.makedirs(args.save_dir) time_ = time.strftime("%Y-%m-%d-%H:%M:%S", time.localtime()) fileHandler = logging.FileHandler( os.path.join(args.save_dir, '{}.predict.log'.format(time_))) fileHandler.setFormatter(logFormatter) rootLogger.addHandler(fileHandler) # args display for k, v in vars(args).items(): logging.info(k + ':' + str(v)) seed_everything(666) train(args)
def main(): parser = argparse.ArgumentParser() # input and output parser.add_argument('--input_dir', required=True) parser.add_argument('--output_dir', required=True) parser.add_argument('--save_dir', required=True, help='path to save checkpoints and logs') parser.add_argument('--model_name_or_path', required = True) parser.add_argument('--ckpt') # training parameters parser.add_argument('--weight_decay', default=1e-5, type=float) parser.add_argument('--batch_size', default=16, type=int) parser.add_argument('--seed', type=int, default=666, help='random seed') parser.add_argument('--learning_rate', default=3e-5, type = float) parser.add_argument('--num_train_epochs', default=25, type = int) parser.add_argument('--save_steps', default=448, type = int) parser.add_argument('--logging_steps', default=448, type = int) parser.add_argument('--warmup_proportion', default=0.1, type = float, help="Proportion of training to perform linear learning rate warmup for,E.g., 0.1 = 10% of training.") parser.add_argument("--adam_epsilon", default=1e-8, type=float, help="Epsilon for Adam optimizer.") parser.add_argument("--gradient_accumulation_steps", type=int, default=1, help="Number of updates steps to accumulate before performing a backward/update pass.", ) parser.add_argument("--max_grad_norm", default=1.0, type=float, help="Max gradient norm.") # validating parameters # parser.add_argument('--num_return_sequences', default=1, type=int) # parser.add_argument('--top_p', default=) # model hyperparameters parser.add_argument('--dim_hidden', default=1024, type=int) parser.add_argument('--alpha', default = 1e-4, type = float) args = parser.parse_args() if not os.path.exists(args.save_dir): os.makedirs(args.save_dir) time_ = time.strftime("%Y-%m-%d-%H:%M:%S", time.localtime()) fileHandler = logging.FileHandler(os.path.join(args.save_dir, '{}.log'.format(time_))) fileHandler.setFormatter(logFormatter) rootLogger.addHandler(fileHandler) # args display for k, v in vars(args).items(): logging.info(k+':'+str(v)) seed_everything(666) train(args)
help='Test dataset size' ) parser.add_argument('--image_size', default=224, type=int, help='Desired image size' ) parser.add_argument('--num_workers', default=2, type=int, help='Number of processes for PyTorch data loaders' ) parser.add_argument('--random_state', default=42, type=int, help='Random seed for all random operations' ) args = parser.parse_args() device = torch.device('cuda' if torch.cuda.is_available() else 'cpu') args.gpu = args.gpu if torch.cuda.is_available() else 0 seed_everything(args.random_state) # target_column has unique values in set -1, 0, 1 # -1 corresponds to the unlabeled data df = pd.read_csv(args.csv) labeled = df[df[args.target_column] > -1] if args.ssl: print("Semi-supervised learning model is on...") unlabeled = df[df[args.target_column] == -1] # weights to initialize bias of FC layer of classifier weight = labeled.groupby(args.target_column).count()["path"] / labeled.shape[0] weight = torch.Tensor(weight.values).log() train_labeled, test_labeled = train_test_split(labeled, test_size=args.test_size, stratify=labeled[args.target_column], random_state=args.random_state)