问题标签 [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 回答
36 浏览

python - 获取训练集标签的问题

我使用train_test_split函数将我的数据划分为X_trainX_testy_trainy_test,然后将utils.data.DataLoader其提供给我的 CNN,但问题是我不知道如何访问我的标签张量来制作混淆矩阵并将它们与我的预测张量进行比较。我知道这是一个基本问题,但无论如何你的帮助表示赞赏。

我用

用于将数据提供给我的网络似乎您可以通过在您的 train_set 之后键入 targets 属性来访问您的标签,train_set.targets但它对我不起作用。我怎样才能得到我的标签?

0 投票
1 回答
5761 浏览

python - PyTorch DataLoader 将批次作为列表返回,批次作为唯一条目。如何从我的 DataLoader 获取张量的最佳方式

我目前有以下情况,我想用它DataLoader来批处理一个 numpy 数组:

我希望batch已经是torch.Tensor. 到目前为止,我像这样索引批次,batch[0]以获得张量,但我觉得这不是很漂亮,并且使代码更难阅读。

我发现它DataLoader需要一个名为collate_fn. 但是,设置data_utils.DataLoader(..., collage_fn=lambda batch: batch[0])只会将列表更改为元组(tensor([ 0.8454, ..., -0.5863]),),其中唯一的条目是作为张量的批次。

你会帮助我找出如何优雅地将批处理转换为张量(即使这包括告诉我批量索引单个条目是可以的),这对我有很大帮助。

0 投票
1 回答
6342 浏览

python - 枚举数据加载器时出现 KeyError

我正在尝试遍历初始化如下的 pytorch 数据加载器:

trainDL = torch.utils.data.DataLoader(X_train,batch_size=BATCH_SIZE, shuffle=True, **kwargs)

其中 X_train 是一个像这样的熊猫数据框: 我的熊猫 DF

因此,我无法执行以下语句,因为我在“枚举”中收到了 KeyError:

有人知道发生了什么吗?

编辑:

我得到的错误是:

0 投票
0 回答
63 浏览

asp.net-core - DotNetCore的graphql中DataLoader的缓存机制

//示例查询

从官方文档中可以看出,GetOrAddLoader 提供缓存机制,无需批处理。但通常,在 LoadAsync() 函数中会提供一个 id。那么,如果我的数据来自外部 API 调用,缓存是如何工作的呢?

0 投票
1 回答
16209 浏览

python - __getitem__ 的 idx 如何在 PyTorch 的 DataLoader 中工作?

我目前正在尝试使用 PyTorch 的 DataLoader 处理数据以输入我的深度学习模型,但面临一些困难。

我需要的数据是 shape (minibatch_size=32, rows=100, columns=41)__getitem__我编写的自定义类中的代码Dataset如下所示:

我这样写的原因是因为我希望 DataLoader(100, 41)一次处理形状的输入实例,我们有 32 个这样的单个实例。

但是,我注意到与我最初的看法相反,idxDataLoader 传递给函数的参数不是连续的(这很重要,因为我的数据是时间序列数据)。例如,打印这些值给了我这样的东西:

这是正常行为吗?我发布这个问题是因为返回的数据批次不是我最初想要的。

在使用 DataLoader 之前,我用来预处理数据的原始逻辑是:

  1. 从文件中读取txt数据csv
  2. 计算数据中有多少批次并相应地对数据进行切片。例如,由于一个输入实例是有形状(100, 41)的,其中 32 个形成一个 minibatch,我们通常最终得到大约 100 个左右的批次,并相应地重新调整数据。
  3. 一个输入是 shape (32, 100, 41)

我不确定我应该如何处理 DataLoader 挂钩方法。非常感谢任何提示或建议。提前致谢。

0 投票
1 回答
1625 浏览

pytorch - 是否可以使用 PyTorch 的 DataLoader 反向 drop_last?

我目前正在尝试制作自定义 PyTorch DataLoader。

我知道drop_last=True第一次声明 DataLoader 对象时的设置会告诉对象在大小不合适的情况下删除最后一个不完整的批次。但是,我想知道这是否可以反过来完成,DataLoader 从后面计算批次数和计数。

我问这个的原因是因为我当前使用的数据是时间序列数据,我想使用最新的样本,因此如果从最旧的部分删除“剩余”样本将是理想的数据。

我已经想到了一些方法,比如先反转数据,然后创建 DataLoader 对象并将其反转回原来的样子,或者首先反转数据并创建对象,然后idx以相反的顺序输入running __getitem__,但这似乎很麻烦并且容易出错,所以我想知道 PyTorch 是否提供这种行为。

提前致谢。

0 投票
2 回答
925 浏览

entity-framework - 如何处理数据加载器/GraphQL 嵌套查询中的并发 DbContext 访问?

我正在使用几个使用注入查询服务的数据加载器(这些服务又依赖于 DbContext)。它看起来像这样:

当我运行同时使用两个数据加载器的嵌套查询时,我得到一个异常"A second operation started on this context before a previous asynchronous operation completed",因为两个数据加载器同时使用相同的 DbContext。

在查询中允许并发数据库访问而不必仔细管理 DbContexts 的最佳方法是什么ServiceLifeTime.Transient?或者数据加载器可以公开一种知道何时处理瞬态 DbContexts 的方法吗?

0 投票
1 回答
882 浏览

elixir - Elixir + Absinthe + Ecto + Dataloader – 按多个字段过滤

使用 Elixir/Absinthe/Ecto/Dataloader,如何通过多个字段查询/过滤源?

例子:

假设您要过滤User由两个字段命名的架构(和数据加载器源),一个命名is_admin(仅true值),一个group_id可以是列表中的任何值,例如[1, 5, 9]

使用Dataloader看起来如何?

这是来自架构定义:

这是数据源模块:

0 投票
1 回答
1383 浏览

python - Pytorch 中(据称)空批次的运行时错误

(更新了对问题的进一步见解)

我有一个包含 3000 张图像的数据集,它们通过以下几行进入 DataLoader:

我的训练循环如下所示:

张量“数据”和“输出”(标签)中的信息是正确的,系统工作正常,直到达到批号 1500。我所有的批次都满了 3000/2=1500,没有剩余。一旦到达最后一批,就会出现一个 RunTimeError 说明存在 0 维输入大小。但我不知道为什么会发生这种情况,因为 enumerate(training_left_eyes) 应该遍历已满的 DataLoader 的值。

我在网上搜索了如何解决这个问题,有些人提到 DataLoader 上的“drop_last=True”属性,虽然这样做是为了防止半空批次进入模型,但我还是尝试了但无济于事。

我开始过于狭隘了,似乎无法靠自己解决问题。我可以简单地插入一个 if 语句,但我认为这是非常糟糕的做法,我想学习正确的解决方案。

如果有帮助,这是我的自定义数据集:

如果需要,我可以提供任何额外的代码。

更新:经过一段时间尝试解决问题后,我设法查明正在发生的事情。由于某种原因,在最后一批中,进入网络的数据很好,但在第一层发生之前,它就消失了。在下一张图片中,您可以看到我在进入forward(self,x)之前和之后所做的打印。尺寸对齐,直到批号 61(我在本示例中将其从 1500 减少),其中它以某种方式通过打印两次。在该行之后,出现上述错误。

屏幕截图试图查看数据发生了什么

0 投票
2 回答
1993 浏览

pytorch - 不使用多处理但在使用 PyTorch DataLoader 时在 google colab 上出现 CUDA 错误

我已将我的 GitHub 存储库克隆到 google colab 并尝试使用 PyTorch 的 DataLoader 加载数据。

运行最后一个 for 循环时出现以下错误:

我尝试num_workers = 1了,4但错误仍然存​​在。我没有使用任何多处理。

我也试过不设置torch.set_default_tensor_type('torch.cuda.FloatTensor'),但错误仍然存​​在。

蟒蛇:3.6.8 | 火炬:1.3.1

似乎是什么问题?