python - 从 PyTorch DataLoader 获取单个随机示例
问题描述
如何从 PyTorch 获得单个随机示例DataLoader
?
如果我DataLoader
给出了多个图像和标签的 minbatch,我如何获得单个随机图像和标签?
请注意,我不想要每个 minibatch 一个图像和标签,我想要一个示例。
解决方案
如果你DataLoader
是这样的:
test_loader = DataLoader(image_datasets['val'], batch_size=batch_size, shuffle=True)
它为您提供了一批 size batch_size
,您可以通过直接索引该批次来挑选一个随机示例:
for test_images, test_labels in test_loader:
sample_image = test_images[0] # Reshape them according to your needs.
sample_label = test_labels[0]
替代解决方案
您可以使用RandomSampler来获取随机样本。
batch_size
在 DataLoader 中使用1。直接从您的 DataSet 中抽取样本,如下所示:
mnist_test = datasets.MNIST('../MNIST/', train=False, transform=transform)
现在使用这个数据集来采样:
for image, label in mnist_test: # do something with image and other attributes
(可能是最好的)见这里:
inputs, classes = next(iter(dataloader))
推荐阅读
- excel - 在 VBA 中打开不存在的工作簿时如何绕过 MS 1004 错误
- reactjs - Gatsby 和 Woocommerce API – 产品类别字段在 GraphQL 中停止同步
- html - 调整容器内 3 个 div 中的图像大小
- python - 如何从动作中获取结果并弹出不同的消息框?
- ios13 - 如何从 iOS 13 现在的 viewController 功能动画和视图返回到以前的 iOS 版本?
- node.js - 在使用 echo 手动执行之前,无法使用 node-usb 写入 USB 设备
- java - Android Studio:如何解决这个执行错误
- python - 字典到日期时间
- javascript - 查询时的 DynamoDB 重新映射列表属性项
- sql - 如何在 Sqlite 中找到两个变量之间的相关性?