這篇文章示範如何使用 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中文網其他相關文章!