Как я могу видеть изображения из набора данных тензорного потока «cats_vs_dogs»

#python #tensorflow #dataset

#python #тензорный поток #набор данных

Вопрос:

Я хочу увидеть некоторые изображения из набора данных тензорного потока «cats_vs_dogs». Используя следующий код, я могу видеть первые 9 изображений в наборе данных.

 # Download and prepare the data
tfds.disable_progress_bar()
train_ds, validation_ds, test_ds = tfds.load(
    "cats_vs_dogs", 
    # Reserve 10% for validation (from 50% to 60%) and 10% for test (from 60% to 70%)
    split=["train[:50%]", "train[50%:60%]", "train[60%:70%]"],
    as_supervised=True,  # Include labels
)

plt.figure(figsize=(10, 10))
for i, (image, label) in enumerate(iterable = train_ds.take(9), start = 0): 
    ax = plt.subplot(3, 3, i   1)
    plt.imshow(image)
    plt.title(int(label))
    plt.axis("off")
 

Как я могу отобразить, например, изображения от 100 до 120?

Ответ №1:

Чтобы получить изображения от 100 до 120, вы можете использовать комбинацию skip и take . Подробнее о доступных функциях tf.data.Dataset API читайте в документации.

 ds_img_100_to_120 = train_ds.skip(100).take(20)
# display
for i, (image, label) in enumerate(iterable = ds_img_100_to_120, start = 0): 
    ax = plt.subplot(5, 4, i   1)
    plt.imshow(image)
    plt.title(int(label))
    plt.axis("off")