【问题标题】:Facing Broken Pipe error when trying to run the next(iter(train_data_loader)). I'm running the code in local jupyter notebook尝试运行 next(iter(train_data_loader)) 时遇到 Broken Pipe 错误。我在本地 jupyter notebook 中运行代码
【发布时间】:2021-06-05 16:11:37
【问题描述】:

当我尝试用拥抱的脸进行情绪分析时,我遇到了 BrokenPipeError。它返回 [Error No] 32 Broken Pipe。 有没有办法重写next(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

【问题讨论】:

  • 你是windows用户还是linux用户?

标签: python loops pytorch next broken-pipe


【解决方案1】:

此问题的原因之一可能是操作系统。使用 Windows 时,不应定义 num_worker,因为 PyTorch 数据加载器不支持 Windows 上的多处理。默认情况下,num_workers0,适用于 Windows。

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

【讨论】:

  • 好的,会尝试让您知道
猜你喜欢
  • 2020-06-08
  • 1970-01-01
  • 1970-01-01
  • 2019-06-11
  • 1970-01-01
  • 2020-07-06
  • 1970-01-01
  • 2021-08-11
  • 2023-02-19
相关资源
最近更新 更多