この投稿では、さまざまな MS COCO データセットで CocoCaptions
ライブラリの torchvision.datasets
クラスを使用する方法を示します。 この例では、unlabeled2017
サブセットからの画像の読み込みと表示を示します。 ただし、stuff_train2017
、stuff_val2017
、stuff_train2017_pixelmaps
、stuff_val2017_pixelmaps
からのデータにアクセスしようとすると、CocoCaptions
との互換性がないことを示すエラーが発生しました。 コード スニペットとその出力を以下に示します。
コードと出力:
このコードは、CocoCaptions
を使用して MS COCO データセットのさまざまなサブセットをロードして利用しようとします。 unlabeled2017
サブセットは正常にロードされ、画像を表示できるようになります。 他のサブセット (「スタッフ」データと「パノプティック」データを含む) ではエラーが発生し、これらの特定のデータ構造で 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
サブセットから 3 つの画像を表示します。
結論:
この実験は、CocoCaptions
が特定の MS COCO データ サブセット (unlabeled2017
など) で動作する一方で、すべての注釈と直接互換性があるわけではないことを示しています。 発生したエラーは、「スタッフ」アノテーションと「パノプティック」アノテーションを適切に読み込んで使用するには、異なるアプローチまたは異なるデータセット クラスが必要であることを示唆しています。 データ アクセスを成功させるには、これらのアノテーションの構造と利用可能な torchvision
データセット クラスをさらに調査する必要があります。
以上がPyTorch の CocoCaptions (3)の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。