在拥抱面数据集上迭代 DataLoader 时获取批次索引

问题描述

下面的代码来自一个 tutorial 的拥抱脸:

from datasets import load_metric

metric= load_metric("glue","mrpc")
model.eval()
for batch in eval_dataloader:
    batch = {k: v.to(device) for k,v in batch.items()}
    with torch.no_grad():
        outputs = model(**batch)
    
    logits = outputs.logits
    predictions = torch.argmax(logits,dim=-1)
    metric.add_batch(predictions=predictions,references=batch["labels"])

metric.compute()

在循环 for batch in eval_dataloader: 中,我如何知道该批次包含数据集中的哪些索引?

DataLoader 是之前使用

创建的
eval_dataloader = DataLoader(
    tokenized_datasets["validation"],batch_size=8,collate_fn=data_collator
)

请注意,它没有改组标志,因此可以使用批量大小手动计数,但是如何使用改组进行计数?是否可以在创建数据集和数据加载器时使其成为批处理的字段?

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)

相关问答

依赖报错 idea导入项目后依赖报错,解决方案:https://blog....
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下...
错误1:gradle项目控制台输出为乱码 # 解决方案:https://bl...
错误还原:在查询的过程中,传入的workType为0时,该条件不起...
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct...