pytorch 尝试运行下一个(iter(train_data_loader))时遇到“管道破裂”错误,我正在运行本地jupyter笔记本中的代码

gywdnpxw  于 2023-05-29  发布在  其他
关注(0)|答案(1)|浏览(170)

当我试图运行拥抱脸的情绪分析时,我遇到了BrokenPipeError。返回[Error No] 32 Broken Pipe。有没有办法重写下一个(iter(train_data_loader))代码?
总代码为“https://colab.research.google.com/drive/1wBXKa-gkbSPPk-o7XdwixcGk7gSHRMas?usp=sharing”的链接
密码是

def create_data_loader(df, tokenizer, max_len, batch_size):
  ds = GPReviewDataset(
    reviews=df.content.to_numpy(),
    targets=df.sentiment.to_numpy(),
    tokenizer=tokenizer,
    max_len=max_len
  )
  return DataLoader(
    ds,
    batch_size=batch_size,
    num_workers=4
  )

下面的代码

BATCH_SIZE = 16
train_data_loader = create_data_loader(df_train, tokenizer, MAX_LEN, BATCH_SIZE)
val_data_loader = create_data_loader(df_val, tokenizer, MAX_LEN, BATCH_SIZE)
test_data_loader = create_data_loader(df_test, tokenizer, MAX_LEN, BATCH_SIZE)

其次是

data = next(iter(train_data_loader))
data.keys()

我遇到了这个' data = next(iter(train_data_loader)) '代码的错误
错误为BrokenPipeError: [Errno 32] Broken pipe

oknwwptz

oknwwptz1#

这个问题的原因之一可能是操作系统。当你使用Windows时,你不应该定义num_worker,因为PyTorch dataloader不支持Windows上的多处理。默认情况下,num_workers0,适用于Windows。

DataLoader(
    ds,
    batch_size=batch_size,
    num_workers=0 # should be zero on Windows
  )

相关问题