问题标签 [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.
pytorch - 使用特定元素自定义批次
我是 PyTorch 的新手。奇怪的是,我找不到与此相关的任何内容,尽管它看起来很简单。
我想用特定的例子来构建我的批次,比如每批次的所有例子都具有相同的标签,或者只是用 2 个类的例子填充批次。
我该怎么做?对我来说,这似乎是数据加载器中的正确位置,而不是数据集中?由于数据加载器负责批次而不是数据集?
有一个简单的最小例子吗?
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
。或者例如tag1
,tag2
如果我设置batch_size=2
到目前为止,我的代码完全无视tag
标签,只是随机选择批次。
我构建了这样的数据集:
我的装载机(通常)看起来像这样:
然后我像这样训练:
和train_batch
:
pytorch - 从 pytorch 中的 T/F 值和位串键的映射训练简单的 RNN
我想训练能够识别以下内容的 rnn 网络:我有一个由位串(长度可以是 n>20)组成的语言 L,该语言中的每个位串都满足语言的模式(不是目前相关)。
我创建了一个数据集,它就像一个以位串为键、真/假为值的地图:
我试图在 pytorch 中创建 rnn 网络:
并训练它:
但加载数据时出现错误:
溢出错误:Python int 太大而无法转换为 C long
image - 尝试在单个图像 CNN pytorch 上进行预测时出错
错误信息
Traceback(最近一次调用最后):文件“pred.py”,第 134 行,在输出 = 模型(数据)运行时错误:预期 4 维输入为 4 维权重 [16、3、3、3],但得到大小为 [1, 32, 32] 的 3 维输入。
预测码
python - 沿 z 轴连接 PyTorch Dataloader
我有一个包含 9 个波段的多光谱数据集。由于数据非常大,我将每个波段分成 256 x 256 个样本。所以我为每个乐队准备了 16 个这样的样本,并将它们保存到不同的文件夹中。现在如何连接 9 个波段的每个样本?
例如,我想将第一个波段数据中的第一个样本与第二个波段的第一个样本、第三个波段的第一个样本等连接起来,直到第 9 个波段。然后是第 1、第 2 ... 第 9 波段的第 2 个样本。依此类推,直到第 16 个样本。
python - 创建一个 pyTorch 测试数据集(无标签)
我为我的训练数据创建了一个 pyTorch 数据集,该数据集由特征和标签组成,以便能够使用本教程使用 pyTorch DataLoader。这对我的训练数据很有效,但KeyError: "['label'] not found in axis"
在加载测试 csv 文件时出现错误 (),除了没有“标签”列之外,它是相同的。
如果有帮助,预期的输入 csv 文件是 csv 文件中的 MNIST 数据,它具有 28*28 特征列。
python - PyTorch DataLoader 如何与 PyTorch 数据集交互以转换批次?
我正在为 NLP 相关任务创建自定义数据集。
在 PyTorch custom datast tutorial中,我们看到该__getitem__()
方法在返回样本之前为转换留出了空间:
但是,这里的代码:
意味着应该能够一次检索多个项目,这让我想知道:
这种转换如何作用于多个项目?以教程中的自定义转换为例。它们看起来不像可以在一次调用中应用于一批样本。
相关,如果变换只能应用于单个样本,DataLoader 如何并行检索一批多个样本并应用所述变换?
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 驱动器上。
谢谢你的帮助。
nlp - 如何在 TPU(Pytorch)上收集预测结果?
我正在尝试使用 Kaggle 提供的 Tpu v3-8 微调我的基于 bert 的 QA 模型(PyTorch)。在验证过程中,我使用 ParallelLoader 同时对 8 个内核进行预测。但在那之后我不知道我应该怎么做才能从每个核心收集所有结果(并以与数据集相对应的正确顺序),以计算整体 EM 和 F1 分数。有人可以帮忙吗?代码:
pytorch - 如何将 Pytorch DataLoader 用于具有多个标签的数据集
我想知道如何在 Pytorch 中创建支持多种标签的 DataLoader。我该怎么做呢?