首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何在将转换器数据集传递给培训师时使用切片?

如何在将转换器数据集传递给培训师时使用切片?
EN

Stack Overflow用户
提问于 2021-12-23 22:17:02
回答 2查看 518关注 0票数 0

参考这个colab笔记本 (来自Huggingface 这里),如果我运行

代码语言:javascript
运行
复制
tokenized_datasets["train"][:8]

dtypedict而不是Dataset,切片将返回一些数据。如果我在这里传递切片,我会得到一个关键错误,我认为这与我不再传递数据集有关。

代码语言:javascript
运行
复制
from transformers import Trainer

trainer = Trainer(
    model,
    training_args,
    train_dataset=tokenized_datasets["train"][:8],
    eval_dataset=tokenized_datasets["validation"],
    #data_collator=data_collator,
    tokenizer=tokenizer,
)



trainer.train()
***** Running training *****
  Num examples = 7
  Num Epochs = 3
  Instantaneous batch size per device = 8
  Total train batch size (w. parallel, distributed & accumulation) = 8
  Gradient Accumulation steps = 1
  Total optimization steps = 3
---------------------------------------------------------------------------
KeyError                                  Traceback (most recent call last)
<ipython-input-20-3435b262f1ae> in <module>()
----> 1 trainer.train()

是否有一种简单的方法只传递数据集行的子集以进行培训或验证?

EN

Stack Overflow用户

发布于 2021-12-23 22:20:41

您可以尝试使用torch,例如:

代码语言:javascript
运行
复制
from torch.utils.data import Subset
train_dataset = Subset(tokenized_datasets["train"], list(range(8)))
...  # init trainer

这将为您提供数据集的子集,因此仍然满足接口要求。(如果HuggingFace的变压器也这么做的话,我认为他们也会这么做。)

票数 1
EN
查看全部 2 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/70467910

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档