Skip to content

Commit

Permalink
🚩 Added optimizer option to arguments
Browse files Browse the repository at this point in the history
  • Loading branch information
ItsNiklas committed Jul 5, 2023
1 parent c11553e commit 92ed0cc
Show file tree
Hide file tree
Showing 2 changed files with 22 additions and 6 deletions.
9 changes: 7 additions & 2 deletions classifier.py
Original file line number Diff line number Diff line change
Expand Up @@ -278,8 +278,11 @@ def train(args):
model = model.to(device)

lr = args.lr
# optimizer = AdamW(model.parameters(), lr=lr)
optimizer = SophiaG(model.parameters(), lr=lr, eps=1e-12, rho=0.03, betas=(0.985, 0.99), weight_decay=2e-1)
if args.optimizer == "adamw":
optimizer = AdamW(model.parameters(), lr=lr)
elif args.optimizer == "sophiag":
optimizer = SophiaG(model.parameters(), lr=lr, eps=1e-12, rho=0.03, betas=(0.985, 0.99), weight_decay=2e-1)

hess_interval = 10
iter_num = 0

Expand Down Expand Up @@ -419,9 +422,11 @@ def get_args():

parser.add_argument("--batch_size", help='sst: 64, cfimdb: 8 can fit a 12GB GPU', type=int, default=8)
parser.add_argument("--hidden_dropout_prob", type=float, default=0.3)
parser.add_argument("--optimizer", type=str, default="adamw")

args, _ = parser.parse_known_args()

# TODO: Possibly change defaults based on optimizer
parser.add_argument("--lr", type=float, help="learning rate, default lr for 'pretrain': 1e-3, 'finetune': 1e-5",
default=1e-5 if args.option == 'finetune' else 1e-3)

Expand Down
19 changes: 15 additions & 4 deletions multitask_classifier.py
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@
from torch.utils.tensorboard import SummaryWriter

from bert import BertModel
from optimizer import AdamW
from optimizer import AdamW, SophiaG
from tqdm import tqdm

from datasets import SentenceClassificationDataset, SentencePairDataset, \
Expand Down Expand Up @@ -177,7 +177,12 @@ def train_multitask(args):
model = model.to(device)

lr = args.lr
optimizer = AdamW(model.parameters(), lr=lr)

if args.optimizer == "adamw":
optimizer = AdamW(model.parameters(), lr=lr)
elif args.optimizer == "sophiag":
optimizer = SophiaG(model.parameters(), lr=lr, eps=1e-12, rho=0.03, betas=(0.985, 0.99), weight_decay=2e-1)

best_dev_acc_para = 0
best_dev_acc_sst = 0
best_dev_acc_sts = 0
Expand Down Expand Up @@ -339,9 +344,15 @@ def get_args():
# hyper parameters
parser.add_argument("--batch_size", help='sst: 64, cfimdb: 8 can fit a 12GB GPU', type=int, default=8)
parser.add_argument("--hidden_dropout_prob", type=float, default=0.3)
parser.add_argument("--lr", type=float, help="learning rate, default lr for 'pretrain': 1e-3, 'finetune': 1e-5",
default=1e-5)

parser.add_argument("--optimizer", type=str, default="adamw")

args, _ = parser.parse_known_args()

# TODO: Possibly change defaults based on optimizer
parser.add_argument("--lr", type=float, help="learning rate, default lr for 'pretrain': 1e-3, 'finetune': 1e-5",
default=1e-5 if args.option == 'finetune' else 1e-3)

args = parser.parse_args()
return args

Expand Down

0 comments on commit 92ed0cc

Please sign in to comment.