最后,介绍一下模型的训练、验证以及测试流程。
目录
1. 训练
def train(config, model, train_iter, dev_iter, test_iter):
start_time = time.time()
model.train()#训练模式
param_optimizer = list(model.named_parameters())
#下列参数 不进行正则化(权重衰减)
no_decay = ['bias', 'LayerNorm.bias', 'LayerNorm.weight']
optimizer_grouped_parameters = [
{'params': [p for n, p in param_optimizer if not any(nd in n for nd in no_decay)], 'weight_decay': 0.01},
{'params': [p for n, p in param_optimizer if any(nd in n for nd in no_decay)], 'weight_decay': 0.0}]
# optimizer = torch.optim.Adam(model.parameters(), lr=config.learning_rate)
#优化器
optimizer = BertAdam(optimizer_grouped_parameters,
lr=config.learning_rate,
warmup=0.05,
t_total=len(train_iter) * config.num_epochs)
total_batch = 0 # 记录进行到多少batch
dev_best_loss = float('inf')#跟踪验证集最小的

最低0.47元/天 解锁文章
2716





