这篇文章演示了如何使用 CocoCaptions
库中的 torchvision.datasets
类和各种 MS COCO 数据集。 这些示例说明了加载和显示 unlabeled2017
子集中的图像。 但是,尝试访问 stuff_train2017
、stuff_val2017
、stuff_train2017_pixelmaps
和 stuff_val2017_pixelmaps
中的数据会导致错误,表明与 CocoCaptions
不兼容。 下面提供了代码片段及其输出。
代码和输出:
代码尝试使用 CocoCaptions
加载和利用 MS COCO 数据集的不同子集。 unlabeled2017
子集成功加载并允许图像显示。 其他子集(包含“stuff”和“panoptic”数据)会导致错误,突出显示使用 CocoCaptions
与这些特定数据结构的局限性。
<code class="language-python">from torchvision.datasets import CocoCaptions import matplotlib.pyplot as plt # ... (CocoCaptions instantiation code as provided in the input) ... # ... (len() calls and error handling code as provided in the input) ... unlabeled2017_data[2] # Displays image and empty caption list unlabeled2017_data[47] # Displays image and empty caption list unlabeled2017_data[64] # Displays image and empty caption list def show_images(data, ims, main_title=None): file = data.root.split('/')[-1] fig, axes = plt.subplots(nrows=1, ncols=3, figsize=(14, 8)) fig.suptitle(t=main_title, y=0.9, fontsize=14) for i, axis in zip(ims, axes.ravel()): if not data[i][1]: im, _ = data[i] axis.imshow(X=im) fig.tight_layout() plt.show() ims = (2, 47, 64) show_images(data=unlabeled2017_data, ims=ims, main_title="unlabeled2017_data")</code>
show_images
函数显示 unlabeled2017_data
子集中的三张图像。
结论:
此实验表明,虽然 CocoCaptions
适用于某些 MS COCO 数据子集(如 unlabeled2017
),但它并不直接与所有注释兼容。 遇到的错误表明“stuff”和“panoptic”注释需要不同的方法或不同的数据集类才能正确加载和使用。 要成功访问数据,需要进一步研究这些注释的结构和可用的 torchvision
数据集类。
以上是PyTorch 中的 CocoCaptions (3)的详细内容。更多信息请关注PHP中文网其他相关文章!