使用enwik8重整器从GPU内存不足

时间:2020-06-14 13:16:56

标签: pytorch gpu huggingface-transformers

我正在尝试从拥抱面的变压器运行经过预训练的模型basePackageClasses,但是除非遇到将序列限制为模型容量的四分之一(〜16k而不是模型容量的四分之一)的问题,否则我将获得内存不足的CUDA。 65k)。

这种情况发生在具有12GB RAM的Titan Xp上;我希望Reformer的所有技巧都能使模型具有合适的原始序列大小。

我正在运行的代码:

google/reformer-enwik8

model = ReformerModelWithLMHead.from_pretrained('google/reformer-enwik8') model.cuda() config = model.config max_len = config.max_position_embeddings dataset = Enwik8Dataset( path, max_len, pad_id=config.pad_token_id, eos_id=config.eos_token_id) loader = DataLoader(dataset, batch_size=1, shuffle=False) acc_loss = 0 for batch in loader: with torch.no_grad(): batch_loss = model(input_ids=batch, labels=batch)[0] acc_loss += batch_loss.mean().item() acc_loss /= len(dataset) 继承自Enwik8Dataset并进行基本数据预处理,如有必要,我可以发布代码。

0 个答案:

没有答案