问题标签 [pytorch-dataloader]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
1348 浏览

pytorch - 使用特定元素自定义批次

我是 PyTorch 的新手。奇怪的是,我找不到与此相关的任何内容,尽管它看起来很简单。

我想用特定的例子来构建我的批次,比如每批次的所有例子都具有相同的标签,或者只是用 2 个类的例子填充批次。

我该怎么做?对我来说,这似乎是数据加载器中的正确位置,而不是数据集中?由于数据加载器负责批次而不是数据集?

有一个简单的最小例子吗?

0 投票
1 回答
1025 浏览

python - PyTorch,根据数据列中的标签选择批次

我有一个这样的数据集:

指数 标签 特色1 特征2 目标
1 标签1 1.4342 88.4554 0.5365
2 标签1 2.5656 54.5466 0.1263
3 标签2 5.4561 845.556 0.8613
4 标签3 6.5546 8.52545 0.7864
5 标签3 8.4566 945.456 0.4646

每个标签中的条目数并不总是相同的。

我的目标是仅加载具有特定标签或标签的数据,以便我只tag1获取一个小批量的条目,然后tag2如果我设置了另一个小批量的条目batch_size=1。或者例如tag1tag2如果我设置batch_size=2

到目前为止,我的代码完全无视tag标签,只是随机选择批次。

我构建了这样的数据集:

我的装载机(通常)看起来像这样:

然后我像这样训练:

train_batch

0 投票
0 回答
28 浏览

pytorch - 从 pytorch 中的 T/F 值和位串键的映射训练简单的 RNN

我想训练能够识别以下内容的 rnn 网络:我有一个由位串(长度可以是 n>20)组成的语言 L,该语言中的每个位串都满足语言的模式(不是目前相关)。

我创建了一个数据集,它就像一个以位串为键、真/假为值的地图:

我试图在 pytorch 中创建 rnn 网络:

并训练它:

但加载数据时出现错误:

溢出错误:Python int 太大而无法转换为 C long

0 投票
2 回答
62 浏览

image - 尝试在单个图像 CNN pytorch 上进行预测时出错

错误信息

Traceback(最近一次调用最后):文件“pred.py”,第 134 行,在输出 = 模型(数据)运行时错误:预期 4 维输入为 4 维权重 [16、3、3、3],但得到大小为 [1, 32, 32] 的 3 维输入。

预测码

尝试预测单个图像时出现此错误图像 形状/大小错误消息

链接到保存的模型

训练代码库

0 投票
1 回答
110 浏览

python - 沿 z 轴连接 PyTorch Dataloader

我有一个包含 9 个波段的多光谱数据集。由于数据非常大,我将每个波段分成 256 x 256 个样本。所以我为每个乐队准备了 16 个这样的样本,并将它们保存到不同的文件夹中。现在如何连接 9 个波段的每个样本?

例如,我想将第一个波段数据中的第一个样本与第二个波段的第一个样本、第三个波段的第一个样本等连接起来,直到第 9 个波段。然后是第 1、第 2 ... 第 9 波段的第 2 个样本。依此类推,直到第 16 个样本。

0 投票
1 回答
867 浏览

python - 创建一个 pyTorch 测试数据集(无标签)

我为我的训练数据创建了一个 pyTorch 数据集,该数据集由特征和标签组成,以便能够使用教程使用 pyTorch DataLoader。这对我的训练数据很有效,但KeyError: "['label'] not found in axis"在加载测试 csv 文件时出现错误 (),除了没有“标签”列之外,它是相同的。

如果有帮助,预期的输入 csv 文件是 csv 文件中的 MNIST 数据,它具有 28*28 特征列。

0 投票
2 回答
2128 浏览

python - PyTorch DataLoader 如何与 PyTorch 数据集交互以转换批次?

我正在为 NLP 相关任务创建自定义数据集。

在 PyTorch custom datast tutorial中,我们看到该__getitem__()方法在返回样本之前为转换留出了空间:

但是,这里的代码:

意味着应该能够一次检索多个项目,这让我想知道:

  1. 这种转换如何作用于多个项目?以教程中的自定义转换为例。它们看起来不像可以在一次调用中应用于一批样本。

  2. 相关,如果变换只能应用于单个样本,DataLoader 如何并行检索一批多个样本并应用所述变换?

0 投票
0 回答
360 浏览

python - 在 GCP 实例上运行多个作业时,PyTorch 数据加载“冻结”

在一台机器上运行多个 python3.7 作业时出现问题(每个 GPU 一个作业)。这些是涉及大型数据集(>1000GB)的 PyTorch 数据加载的机器学习作业。

只有一份工作,如果我使用 Dataloader 的选项,训练很顺利pin_memory=True,批次按时提供,gpu 利用率很高。我使用 8 名工人。如果pin_memory=False是,主进程会等待一些批次的数据加载,但还不错。

但是,如果我开始第二份工作,每 8 批(我有 8 个工人)的数据加载“冻结”长达一分钟,大大减慢了训练速度。我对 and 函数进行了计时,__getitem__并且collate这些函数的计时保持简短且恒定。因此,这不是磁盘吞吐量或 i/o 问题,也不是处理问题。我在“冻结”期间发现所有数据加载工作进程都由内核线程控制(所有 cpu 在 htop 上都以红色显示)。转身pin_memory=False并不能解决问题。

因此,如果它不是来自__getitem__norcollate函数,那么所有这些时间都花在了哪里?在工人处理完一批之后,在它可以在主流程中消耗之前发生了什么?您能否推荐一些监控工具来找出问题所在?

我正在使用 GCP linux 虚拟机,我的数据存储在 SSD 驱动器上。

谢谢你的帮助。

0 投票
0 回答
30 浏览

nlp - 如何在 TPU(Pytorch)上收集预测结果?

我正在尝试使用 Kaggle 提供的 Tpu v3-8 微调我的基于 bert 的 QA 模型(PyTorch)。在验证过程中,我使用 ParallelLoader 同时对 8 个内核进行预测。但在那之后我不知道我应该怎么做才能从每个核心收集所有结果(并以与数据集相对应的正确顺序),以计算整体 EM 和 F1 分数。有人可以帮忙吗?代码:

0 投票
1 回答
843 浏览

pytorch - 如何将 Pytorch DataLoader 用于具有多个标签的数据集

我想知道如何在 Pytorch 中创建支持多种标签的 DataLoader。我该怎么做呢?