问题标签 [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 投票
2 回答
2586 浏览

javascript - Dataloader如何缓存和批量数据库请求?

查看DataLoader 库,它是如何缓存和批处理请求的?

说明通过以下方式指定用法:

但我不清楚该load功能是如何工作的,以及该myBatchGetUsers功能可能是什么样子。如果可能的话,请你给我一个例子!

0 投票
0 回答
35 浏览

graphql - 在没有数据库的情况下使用 DataLoader 有意义吗?

我在阅读 GraphQL教程时发现了 DataLoader 包,但 DataLoader 包的所有示例都对应于一些数据库。

如果我的 GraphQL 层只是 REST API 之上的一层,那么使用 DataLoader 是否有意义?

0 投票
1 回答
335 浏览

javascript - 为数据加载器中的键设置生存时间

嘿,有什么方法可以设置时间来输入data-loader(由 facebook 开发人员创建的用于缓存和批处理的库)?

在他们的文档中只有clearAll()功能,但我想在将每个键插入缓存的那一刻起 X 秒后分别清除每个键

0 投票
5 回答
29508 浏览

flutter - 如何在颤动中加载数据之前显示进度对话框?

在我的 Flutter 项目中,我正在执行 API 调用以通过 GET 请求获取数据。从响应中解析JSON 对象后,我只在Text小部件中显示该值。虽然加载数据需要时间,但与此同时,我的 Text 小部件显示为空。

对于 API 调用部分,我有以下代码-

我为 JSON 解析创建了一个模型类-

现在,在我的主课中,我创建了一个如下所示的函数 -

之后,我在 initState 函数中调用了该函数并将值保存在 _category 对象中。

然后在 Text 小部件的 Widget build(BuildContext context)函数中,我使用了_category对象的值,如下所示,使用三元运算符来检查对象是否为空。如果它为空,则应显示 0,如果不为空,则应显示原始值-

但它仍然显示空值,而数据加载需要几秒钟,并显示如下输出 -

在此处输入图像描述

因此,我需要一个解决方案来显示进度对话框,或者在数据需要时间加载时将默认值显示为 0。如果有人帮助我处理这段代码,那就太好了。

0 投票
1 回答
1279 浏览

graphql - GraphQL DataLoader 应该将请求包装到数据库还是将请求包装到服务方法?

我有这样的非常常见的 GraphQL 模式(伪代码):

因此,为了避免在请求多个Post对象时出现 n+1 问题,我决定使用 Facebook 的 Dataloader。

由于我正在开发 Nest.JS 3 层分层应用程序(Resolver-Service-Repository),我有疑问:

我应该用 DataLoader 包装我的存储库方法还是应该用 Dataloder 包装我的服务方法?

下面是我的返回Comments页面的服务方法的示例(即从commentsPage属性解析器调用的此方法)。在服务方法内部,我使用了 2 个存储库方法(#count#find):

那么我应该为每个存储库方法(等)创建单独的 Dataloader 实例,#count还是#find应该只用 Dataloader 包装我的整个服务方法(所以我的commentsPage属性解析器只能与 Dataloader 一起使用,而不是与服务一起使用)?

0 投票
0 回答
609 浏览

deep-learning - 如何使用 Pytorch 将 MNIST 数据集拆分为分布式节点的多个子集?

我正在为一个简单的 CNN 实现 DistributedDataParallel 训练,用于同时在 3 个分布式节点上运行的 torchvision.datasets.MNIST。我想将数据集划分为 3 个不重叠的子集(A、B、C),每个子集应包含 20000 张图像。单个子集应进一步分为训练和测试分区,即 0.7% 训练和 0.3% 测试。我计划将每个子集分别提供给每个分布式节点,以便它们可以以 DistributedDataParallel 方式进行训练和测试。

如下所示的基本代码,从 torchvision.datasets.MNIST 下载 MNIST 数据集,然后使用 torch.utils.data.distributed.DistributedSampler 和 torch.utils.data.DataLoader 在单个节点上创建用于训练和测试的数据批次。

我希望答案应该创建 train_dataset_a、train_dataset_b 和 train_dataset_c,以及 test_dataset_a、test_dataset_b 和 test_dataset_c。

0 投票
1 回答
2688 浏览

computer-vision - Pytorch dataloader,线程太多,cpu内存分配太多

我正在使用 PyTorch 训练模型。要加载数据,我正在使用torch.utils.data.DataLoader. 数据加载器正在使用我实现的自定义数据库。出现了一个奇怪的问题,每次for执行下面代码中的第二个,线程/进程的数量都会增加,并且分配了大量的内存

我怀疑之前的迭代器的线程和内存在每次__iter__()调用数据加载器后都没有释放。分配的内存接近创建线程时主线程/进程分配的内存量。也就是说,在初始时期,主线程使用 2GB 内存,因此创建了 2 个大小为 2GB 的线程。在接下来的 epochs 中,主线程分配了 5GB 内存,并构造了两个 5GB 线程(num_workers为 2)。我怀疑该fork()函数将大部分上下文复制到新线程。

以下是显示python创建的进程的活动监视器,ZMQbg/1是与python相关的进程。 在此处输入图像描述

数据加载器使用的我的数据集有 100 个子数据集,__getitem__调用随机选择一个(忽略index)。(子数据集AlignedDataset来自 pix2pixHD GitHub 存储库):

0 投票
1 回答
984 浏览

pytorch - 如何使用 PyTorch DataLoader 进行强化学习?

我正在尝试在 PyTorch 中建立一个通用的强化学习框架,以利用所有利用 PyTorch DataSet 和 DataLoader 的高级实用程序,如 Ignite 或 FastAI,但我遇到了一个具有动态性质的阻止程序强化学习数据:

  • 数据项是从代码生成的,而不是从文件中读取的,它们依赖于先前的操作和模型结果,因此每个 nextItem 调用都需要访问模型状态。
  • 训练集的长度不是固定的,所以我需要一个动态的批量大小以及一个动态的总数据集大小。我的偏好是使用终止条件函数而不是数字。我可以“可能”用填充来做到这一点,就像在 NLP 句子处理中一样,但这是一个真正的 hack。

到目前为止,我的 Google 和 StackOverflow 搜索都取得了成果。这里有人知道将 DataLoader 或 DataSet 与强化学习一起使用的现有解决方案或解决方法吗?我讨厌放弃对依赖于那些的所有现有库的访问。

0 投票
1 回答
49 浏览

sql - 仅使用 SQL 匹配 DataLoader API

将 DataLoader 与 Knex 一起使用的示例之一显示了以下内容:

那里的映射使得键数组中的键始终与结果数组中的对象匹配,例如,如果缺少 id 2 的对象:

如果你把地图遗漏了,你会得到一个不平衡的输入/输出(例如在查询丢失的 id 时):

有没有办法map用纯 SQL 来做这件事?

0 投票
0 回答
173 浏览

node.js - 将 DataLoader 与 Relay 缓存一起使用

我开发了一个 graphql 服务器(使用graphql-yoga),我的 GraphQL 客户端是 Relay 并且我也在 Relay Network 层设置了一个缓存(参见文档)。

我的 GraphQL 服务器只是 REST API 之上的一层。尝试添加DataLoader对我有意义吗?

更新:来自阿波罗文档

尽管 DataLoader 非常适合该用例,但在从 REST API 加载数据时它的用处不大,因为它的主要功能是批处理,而不是缓存。我们发现,在 REST API 上分层 GraphQL 时,更重要的是拥有一个资源缓存,该缓存可以跨多个 GraphQL 请求保存数据,可以在多个 GraphQL 服务器之间共享,并具有利用标准 HTTP 的过期和失效等缓存管理功能缓存控制头。