问题标签 [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.
python - 如何使用 PyTorch 训练具有大文本语料库(200GB)的 Masked Language Model?
最近我正在使用transformers训练一个带有大文本语料库(200GB)的掩码语言模型。训练数据太大,无法装入配备 512GB 内存和 V100(32GB)*8 的计算机。是否有可能找到一种优雅的方式来用大数据训练模型?
现在我将整个训练数据分成 20 份并创建 20 DataLoader
s,每个数据加载器将相应的数据加载到内存中并用于DistributedDataParallel
训练模型。代码如下。
通过阅读 PyTorch Doc,我发现了一个名为IterableDataset的数据加载器,也许 IterableDataset 更适合我的任务,但是文档中有一条注释说sampler 和 batch_sampler 都不兼容 iterable-style 数据集,因为这样的数据集没有键的概念或索引。
所以我想知道是否可以使用IterableDataset
, DistributedSampler
andDistributedDataParallel
来训练模型,或者其他优雅的方法来训练模型而不是拆分数据。非常感谢。
pytorch - 如何从 pytorch 中的列表构建数据加载器
我得到了一个图像列表和另一个标签列表。图片:shape(64, 64, 3) 标签:shape(64,)。实际上,标签是 64 维的连续值。
pytorch - Pytorch中奇怪的Cuda内存不足行为
编辑:已解决-问题取决于工人的数量,降低了他们,问题解决了
我正在使用 24GB Titan RTX,我正在使用它来使用 Pytorch 进行图像分割 Unet,
它总是以不同的批处理大小将 Cuda 从内存中抛出,而且我的可用内存比它声明的需要的多,并且通过降低批处理大小,它增加了它尝试分配的内存,这没有任何意义。
这是我尝试过的:
图像大小 = 448,批量大小 = 8
- “运行时错误:CUDA 错误:内存不足”
图像大小 = 448,批量大小 = 6
- “RuntimeError:CUDA 内存不足。尝试分配 3.12 GiB(GPU 0;24.00 GiB 总容量;2.06 GiB 已分配;19.66 GiB 空闲;PyTorch 总共保留 2.31 GiB)”
是说它试图分配 3.12GB 并且我有 19GB 可用空间并且它会引发错误??
图像大小 = 224,批量大小 = 8
- “RuntimeError:CUDA 内存不足。尝试分配 28.00 MiB(GPU 0;24.00 GiB 总容量;2.78 GiB 已分配;19.15 GiB 可用;PyTorch 总共保留 2.82 GiB)”
图像大小 = 224,批量大小 = 6
- “RuntimeError:CUDA 内存不足。尝试分配 344.00 MiB(GPU 0;24.00 GiB 总容量;2.30 GiB 已分配;19.38 GiB 空闲;PyTorch 总共保留 2.59 GiB)”
减少批量大小但尝试分配更多?
图像大小 = 224,批量大小 = 4
- “RuntimeError:CUDA 内存不足。尝试分配 482.00 MiB(GPU 0;24.00 GiB 总容量;2.21 GiB 已分配;19.48 GiB 空闲;PyTorch 总共保留 2.50 GiB)”
图像大小 = 224,批量大小 = 2
- “RuntimeError:CUDA 内存不足。尝试分配 1.12 GiB(GPU 0;24.00 GiB 总容量;1.44 GiB 已分配;19.88 GiB 可用;PyTorch 总共保留 2.10 GiB)”
图像大小 = 224,批量大小 = 1
- “RuntimeError:CUDA 内存不足。尝试分配 1.91 GiB(GPU 0;24.00 GiB 总容量;894.36 MiB 已分配;20.94 GiB 可用;PyTorch 总共保留 1.03 GiB)”
即使图像大小和批量大小都非常低......
pytorch - 在 PyTorch 中定义批量大小 = 1 的手动排序的 MNIST 数据集
[] :这表示一个批次。例如,如果批次大小为 5,那么批次将类似于 [1,4,7,4,2]。[] 的长度表示批量大小。
我想要制作的训练集如下所示:
[1] -> [1] -> [1] -> [1] -> [1] -> [7] -> [7] -> [7] -> [7] -> [7] -> [3] -> [3] -> [3] -> [3] -> [3] -> ... 以此类推
这意味着首先是五个 1(batch size = 1),其次是五个 7s(batch size = 1),第三个是五个 3s(batch size = 1)等等......
有人可以给我一个想法吗?
如果有人可以解释如何用代码实现这一点,那将非常有帮助。
谢谢!:)
python - 显示使用 pytorch 数据加载器加载的图像
我正在处理一些由于发布图像的声誉限制而无法在此处发布的激光雷达数据图像。但是,当使用 pytorch ImageFolder 和 Dataloader 加载相同的图像时,唯一的转换是将图像转换为张量,似乎存在一些极端的阈值,我似乎无法找到造成这种情况的原因。
下面是我显示第一张图片的方式:
这是我使用数据加载器并显示阈值图像的方式:
任何有关显示图像的替代方式的帮助或我所犯的任何错误将不胜感激。
python - 是否可以将 PyTorch dataLoader 对象存储到文件或其他东西中?
我正在做一个机器学习项目,我使用的数据集非常大。每次我运行我的 getLoaders 函数(它只调用 Imagefolder()、拆分数据并调用 torch.utils.data.DataLoader())都需要 20 多分钟
那么有没有办法将这些对象存储到一个文件中,这样 getLoader 只会被调用一次?我浏览了 PyTorch 文档,但没有任何运气。
python - 如何在自定义 pytorch 数据集中组合两个图像特征?
我正在尝试构建一个自定义 pytorch 数据集,其中两个图像作为特征,一个图像作为输出。
以下是图像在文件系统中的方式:
我的目标是创建一个将作为输入的神经网络
创建这样一个数据集的最佳方法是什么?
python - Pytorch/自定义数据集加载器/Numpy 数组到张量
嗨,我是 pytorch 的初学者,在理解构建自定义数据集时遇到问题
我正在使用 google colab,我的“数据”和“标签”已经从 google 驱动器加载到我的 colab 文件中。“数据”是 numpy 数组,“标签”是 Pandas DataFrame。
当我使用下面的第一个示例代码并迭代我的 DataLoader 时,出现了一个运行时错误,上面写着:“RuntimeError:堆栈期望每个张量大小相等,但得到了~~”
但是在我稍微改变了下面的代码之后,我的加载器工作得很好。
有谁知道为什么会这样?请解释一下,轻微的变化是如何导致调试的??!!