问题标签 [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.
apache-kafka - 使用dataloader接口kafka数据
我使用 dataloader 来推断 kafka 中的数据,但它不起作用
这是我的代码
当 num_workers 为 1 时有效
当 num_workers >1: 出现错误
文件“batch_upload.py”,第 80 行,用于输入图像,k 中的 osspath:文件“/usr/local/lib/python3.6/dist-packages/torch/utils/data/dataloader.py”,第 801 行,in__next__返回 self._process_data(data) 文件“/usr/local/lib/python3.6/dist-packages/torch/utils/data/dataloader.py”,第 846 行,in_process_data data.reraise() 文件“/usr/local /lib/python3.6/dist-packages/torch/_utils.py",第 369 行,在 reraise raise self.exc_type(msg) FileExistsError:在 DataLoader 工作进程 1 中捕获 FileExistsError。原始回溯(最后一次调用):文件“/usr/local/lib/python3.6/dist-packages/torch/utils/data/_utils/worker.py”,第 178 行,在 _worker_loop 数据 = fetcher.fetch(index) 文件中“/usr/local/lib/python3.6/dist-packages/torch/utils/data/_utils/fetch.py",第 44 行,在 fetch data = [self.dataset[idx] for idx in possible_batched_index] 文件中"/ usr/local/lib/python3.6/dist-packages/torch/utils/data/_utils/fetch.py”,第 44 行,在 data = [self.dataset[idx] for idx in possible_batched_index] 文件“/appbatch/ utils/utils.py”,第 49 行,在getitem info = json.loads(next(self.consumer).value) 文件“/usr/local/lib/python3.6/dist-packages/kafka/consumer/group.py”,第 1192 行,在下一个 return self.next_v2() File "/usr/local/lib/python3.6/dist-packages/kafka/consumer/group.py", line 1200, in next_v2 return next(self._iterator) File "/usr/local /lib/python3.6/dist-packages/kafka/consumer/group.py”,第 1115 行,在 _message_generator_v2 record_map = self.poll(timeout_ms=timeout_ms, update_offsets=False) 文件“/usr/local/lib/python3. 6/dist-packages/kafka/consumer/group.py”,第 654 行,在 poll records = self._poll_once(remaining, max_records, update_offsets=update_offsets) 文件“/usr/local/lib/python3.6/dist-packages /kafka/consumer/group.py”,第 701 行,在 _poll_once self._client.poll(timeout_ms=timeout_ms) 文件“/usr/local/lib/python3.6/dist-packages/kafka/client_async.py”,行600,在 poll self._poll(timeout / 1000) 文件“/usr/local/lib/python3.6/dist-packages/kafka/client_async.py”,第 629 行,在 _poll self._register_send_sockets() 文件“/usr/local /lib/python3.6/dist-packages/kafka/client_async.py”,第 619 行,在 _register_send_sockets self._selector.modify(key.fileobj, events, key.data) 文件“/usr/lib/python3.6/ selectors.py”,第 261 行,在修改 key = self.register(fileobj, events, data) 文件“/usr/lib/python3.6/selectors.py”,第 412 行,在寄存器 self._epoll.register(key .fd, epoll_events) FileExistsError: [Errno 17] 文件存在_register_send_sockets() 文件“/usr/local/lib/python3.6/dist-packages/kafka/client_async.py”,第 619 行,在 _register_send_sockets self._selector.modify(key.fileobj, events, key.data) 文件中“ /usr/lib/python3.6/selectors.py”,第 261 行,在修改 key = self.register(fileobj, events, data) 文件“/usr/lib/python3.6/selectors.py”,第 412 行,在寄存器 self._epoll.register(key.fd, epoll_events) FileExistsError: [Errno 17] 文件存在_register_send_sockets() 文件“/usr/local/lib/python3.6/dist-packages/kafka/client_async.py”,第 619 行,在 _register_send_sockets self._selector.modify(key.fileobj, events, key.data) 文件中“ /usr/lib/python3.6/selectors.py”,第 261 行,在修改 key = self.register(fileobj, events, data) 文件“/usr/lib/python3.6/selectors.py”,第 412 行,在寄存器 self._epoll.register(key.fd, epoll_events) FileExistsError: [Errno 17] 文件存在数据)文件“/usr/lib/python3.6/selectors.py”,第 412 行,在寄存器 self._epoll.register(key.fd, epoll_events) FileExistsError: [Errno 17] 文件存在数据)文件“/usr/lib/python3.6/selectors.py”,第 412 行,在寄存器 self._epoll.register(key.fd, epoll_events) FileExistsError: [Errno 17] 文件存在
我想知道如何让它工作
python - pythorch-lightning train_dataloader 用完数据
我开始使用 pytorch-lightning 并遇到了自定义数据加载器的问题:
我使用自己的数据集和通用的 torch.utils.data.DataLoader。基本上,数据集采用路径并加载与数据加载器加载的给定索引相对应的数据。
当我使用 pytorch-lightning 模块时train_dataloader
,training_step
一切运行良好。当我添加val_dataloader
并validation_step
遇到此错误时:
在这种情况下,我的数据集非常小(用于测试功能),只有 84 个样本,我的批量大小为 8。用于训练和验证的数据集具有相同的长度(仅用于测试目的)。
所以总共有 84 * 2 = 168 和 168 / 8 (batchsize) = 21,大致就是上面显示的总步数 (22)。这意味着在训练数据集上运行 10 次 (10 * 8 = 80) 后,加载器期望新的完整样本为 8,但由于只有 84 个样本,我得到一个错误(至少这是我目前的理解)。
我在自己的实现中遇到了类似的问题(不使用 pytorch-lighntning)并使用这种模式来解决它。基本上,当数据用完时,我正在重置迭代器:
现在看来我面临类似的事情?当我的 training_dataloader 数据不足时,我不知道如何在 pytorch-lightning 中重置/重新初始化数据加载器。我想一定有另一种我不熟悉的复杂方式。谢谢
typescript - 使用 Typescript 初始化 DataLoader 时出现类型错误
我正在尝试使用以下代码初始化 DataLoader 的实例:
我收到以下错误:
为什么我会收到此错误,我该如何解决?我阅读了Generics
数据加载器的源代码,但没有找到解决方案。
注意:keys
是类型string[]
而不是number[]
因为我使用的是uuid
's.
numpy - 当可用 RAM 小于文件大小时,Numpy memmap 使用 Pytorch Dataloader 节流
我正在处理一个太大而无法放入 RAM 的数据集。我目前正在尝试的解决方案是使用 numpy memmap 使用 Dataloader 一次加载一个样本/行。解决方案如下所示:
当可用的 RAM 量大于 memmap 文件的大小时,数据加载速度很快。我得到大约60 批次/秒。但是,当可用 RAM 小于 memmap 文件的大小时,我得到大约 3 batches/second。
我在尝试不同大小的 memmap 文件时发现了这一点。
为什么会这样?如果 Dataloader + memmap 将在可用 RAM < memmap 文件大小时节流,这将破坏解决方案的要点。
我观察到,当可用 RAM < memmap 文件大小时,磁盘 i/o 的读取速度为 500MB/s。这远高于加载一批 4096 个样本(接近 8MB/s)所需的理论读取量。
java - 使用 graphql-java-kickstart 库的 GraphQL 和数据加载器
我正在尝试使用 graphql-java-kickstart 库中的 DataLoader 功能:
https://github.com/graphql-java-kickstart
我的应用程序是使用 2.3.0.RELEASE 的 Spring Boot 应用程序。我使用的是 graphql-spring-boot-starter 库的 7.0.1 版。
该库非常易于使用,当我不使用数据加载器时它可以工作。但是,我受到 N+1 SQL 问题的困扰,因此需要使用数据加载器来帮助缓解这个问题。当我执行一个请求时,我最终得到这个:
我确定我在配置中遗漏了一些东西,但真的不知道那是什么。
这是我的 graphql 架构:
我创建了一个 CustomGraphQLContextBuilder:
我还创建了一个 AccountResolver:
这是客户存储库:
我可以在 Customer Repository 中放置一个断点,然后查看 SQL 执行并返回一个 Customer 对象列表。您还可以看到架构需要一组客户。如果我删除上面的代码并放入解析器以逐个获取客户......它可以工作......但真的很慢。
我在配置中缺少什么会导致这种情况?
谢谢你的帮助!
担
python-3.x - 使用 PyTorch 直接将数据加载到 GPU 中
在训练循环中,我将一批数据加载到 CPU 中,然后将其传输到 GPU:
这种加载数据的方式非常耗时。有什么方法可以直接将数据加载到 GPU 中而无需传输步骤?
python - pytorch 数据集中每个类的实例数
我正在尝试使用 PyTorch 制作一个简单的图像分类器。这就是我将数据加载到数据集和 dataLoader 中的方式:
我想分别打印出训练和测试数据中每个类中的图像数量,如下所示:
在火车数据中:
- 鞋子:20
- 衬衫:14
在测试数据中:
- 鞋子:4
- 衬衫:3
我试过这个:
但我收到了这个错误:
json - 如何通过 Bulk API 上传 JSON Array Object 数据
我已经阅读了批量 API 2.0 的 salesforce 文档,但它不支持将 Content-Type 设置为 JSON
现在我已经在批量 API 1.0 中看到内容类型是 JSON 或只是批量 API。
但我还没有看到任何关于如何实现这一目标的文档。
如果我对批量 API 2.0 有错误,请纠正我。让我知道我怎样才能做到这一点?
python - PyTorch:如何对现有数据集应用另一个转换?
这是一个代码示例:
由于数据集是随机重新采样的,我不想用 重新加载新数据集transform
,而只是应用于transform
已经存在的数据集。
感谢您的帮助:D
python - 使用 pytorch 枚举时无法关闭文件错误
调用 pytorch enumerate 方法时似乎出现错误。从谷歌搜索错误消息来看,这似乎是我的操作系统 macOS catalina 的问题。有没有我找不到的解决方案和/或有没有使用枚举的替代方法?(我正在运行其他人编写的脚本,并且不熟悉 pytorch 中的 DataLoaders 并且找不到有关 enumerate 方法的太多信息)。这是完整的错误消息: