Morizeyao/GPT2-Chinese

文本padding长度问题

Alwin4Zhang opened this issue · 1 comments

batch_inputs = torch.tensor(batch_inputs).long().to(device)
#  forward pass
outputs = model.forward(input_ids=batch_inputs, labels=batch_inputs)
loss, logits = outputs[:2]

输入的input_ids和labels在一个batch内部都要padding成同一个长度吧?不然model会报错吧?请问哪里有做padding操作的代码?

train.py 174 到 178 行:
while start_point < len(tokens) - n_ctx:
samples.append(tokens[start_point: start_point + n_ctx])
start_point += stride
if start_point < len(tokens):
samples.append(tokens[len(tokens)-n_ctx:])
这里利用 n_ctx 已经保证了同一个 batch 内的每条样本长度相同,长度都等于 n_ctx