Bird
Raised Fist0
Computer Visionml~10 mins

Image datasets (CIFAR-10, ImageNet) in Computer Vision - Interactive Code Practice

Choose your learning style10 modes available

Start learning this pattern below

Jump into concepts and practice - no test required

or
Recommended
Test this pattern10 questions across easy, medium, and hard to know if this pattern is strong
Practice - 5 Tasks
Answer the questions below
1fill in blank
easy

Complete the code to load the CIFAR-10 dataset using TensorFlow.

Computer Vision
import tensorflow as tf
(cifar_train, cifar_test) = tf.keras.datasets.cifar10.[1]()
Drag options to blanks, or click blank then click option'
Aload_data
Bfetch
Cdownload
Dget_dataset
Attempts:
3 left
💡 Hint
Common Mistakes
Using 'download' or 'fetch' which are not valid TensorFlow dataset methods.
Trying to call a method that does not exist in tf.keras.datasets.cifar10.
2fill in blank
medium

Complete the code to normalize CIFAR-10 images to the range 0-1.

Computer Vision
cifar_train_images = cifar_train[0] / [1]
Drag options to blanks, or click blank then click option'
A255
B100
C1
D256
Attempts:
3 left
💡 Hint
Common Mistakes
Dividing by 100 or 256 which does not correctly normalize pixel values.
Not dividing at all, leaving pixel values in 0-255 range.
3fill in blank
hard

Fix the error in this code to load ImageNet dataset using TensorFlow Datasets.

Computer Vision
import tensorflow_datasets as tfds
imagenet_data = tfds.load('imagenet_v2', split=[1])
Drag options to blanks, or click blank then click option'
A'train[:80%]'
B'validation'
C'train'
D'test'
Attempts:
3 left
💡 Hint
Common Mistakes
Using 'train' or 'test' which may not exist or are not the validation split.
Using slicing syntax like 'train[:80%]' which is invalid here.
4fill in blank
hard

Fill both blanks to create a dictionary of image shapes and labels from CIFAR-10 training data.

Computer Vision
image_info = {i: {'shape': cifar_train[0][i].[1], 'label': cifar_train[1][i][[2]]} for i in range(5)}
Drag options to blanks, or click blank then click option'
Ashape
B0
C1
Dsize
Attempts:
3 left
💡 Hint
Common Mistakes
Using 'size' instead of 'shape' for image dimensions.
Using label index 1 which is out of range.
5fill in blank
hard

Fill all three blanks to filter CIFAR-10 images with width greater than 30 and create a dictionary of their labels and shapes.

Computer Vision
filtered = {i: {'label': cifar_train[1][i][0], 'shape': cifar_train[0][i].[1] for i in range(len(cifar_train[0])) if cifar_train[0][i].shape[[2]] [3] 30}
Drag options to blanks, or click blank then click option'
Ashape
B1
C>
D0
Attempts:
3 left
💡 Hint
Common Mistakes
Using index 0 which is height, not width.
Using '<' instead of '>' for filtering.

Practice

(1/5)
1. Which of the following best describes the CIFAR-10 dataset?
easy
A. A small dataset with 10 classes of images, easy for beginners
B. A very large dataset with millions of images and thousands of classes
C. A dataset mainly used for text recognition tasks
D. A dataset containing only black and white images

Solution

  1. Step 1: Understand CIFAR-10 size and classes

    CIFAR-10 contains 60,000 small images divided into 10 classes, making it manageable for beginners.
  2. Step 2: Compare with other datasets

    ImageNet is much larger with many more classes, unlike CIFAR-10.
  3. Final Answer:

    A small dataset with 10 classes of images, easy for beginners -> Option A
  4. Quick Check:

    CIFAR-10 = small, 10 classes [OK]
Hint: Remember CIFAR-10 is small and simple for learning [OK]
Common Mistakes:
  • Confusing CIFAR-10 with ImageNet size
  • Thinking CIFAR-10 has many classes
  • Assuming CIFAR-10 is for text data
2. Which Python code correctly loads the CIFAR-10 dataset using TensorFlow?
easy
A. import cifar10 train_images, train_labels = cifar10.load()
B. from tensorflow.keras.datasets import cifar10 (train_images, train_labels), (test_images, test_labels) = cifar10.load_data()
C. from tensorflow.data import cifar10 train, test = cifar10.load()
D. from keras.datasets import imagenet train, test = imagenet.load_data()

Solution

  1. Step 1: Identify correct import for CIFAR-10 in TensorFlow

    The correct import is from tensorflow.keras.datasets import cifar10.
  2. Step 2: Check the loading function

    cifar10.load_data() returns training and testing sets as tuples.
  3. Final Answer:

    from tensorflow.keras.datasets import cifar10 (train_images, train_labels), (test_images, test_labels) = cifar10.load_data() -> Option B
  4. Quick Check:

    Correct import and load_data() method [OK]
Hint: Use tensorflow.keras.datasets for CIFAR-10 loading [OK]
Common Mistakes:
  • Using wrong module names like tensorflow.data
  • Trying to load ImageNet with CIFAR-10 code
  • Missing the load_data() function call
3. What will be the shape of the training images array after loading CIFAR-10 with TensorFlow?
medium
A. (100000, 64, 64, 3)
B. (60000, 28, 28, 1)
C. (50000, 32, 32, 3)
D. (50000, 224, 224, 3)

Solution

  1. Step 1: Recall CIFAR-10 image count and size

    CIFAR-10 has 50,000 training images, each 32x32 pixels with 3 color channels (RGB).
  2. Step 2: Match shape format

    The shape is (number_of_images, height, width, channels) = (50000, 32, 32, 3).
  3. Final Answer:

    (50000, 32, 32, 3) -> Option C
  4. Quick Check:

    Training images shape = (50000, 32, 32, 3) [OK]
Hint: CIFAR-10 images are 32x32 RGB, 50k training samples [OK]
Common Mistakes:
  • Confusing CIFAR-10 with MNIST image size
  • Using ImageNet image dimensions
  • Mixing training and test set sizes
4. You wrote this code to load ImageNet but get an error:
from tensorflow.keras.datasets import imagenet
(train_images, train_labels), (test_images, test_labels) = imagenet.load_data()
What is the main problem?
medium
A. ImageNet is not available in tensorflow.keras.datasets module
B. The load_data() function requires extra parameters
C. You must import ImageNet from tensorflow.data instead
D. ImageNet images are grayscale, so loading fails

Solution

  1. Step 1: Check TensorFlow dataset availability

    TensorFlow's keras.datasets does not include ImageNet; it includes CIFAR-10, MNIST, etc.
  2. Step 2: Understand ImageNet loading method

    ImageNet requires special handling or external libraries, not keras.datasets.
  3. Final Answer:

    ImageNet is not available in tensorflow.keras.datasets module -> Option A
  4. Quick Check:

    ImageNet not in keras.datasets [OK]
Hint: ImageNet needs special loading, not keras.datasets [OK]
Common Mistakes:
  • Assuming ImageNet loads like CIFAR-10
  • Trying to import from wrong TensorFlow submodules
  • Believing ImageNet images are grayscale
5. You want to train a model to recognize 1000 different object categories. Which dataset is best suited for this task?
hard
A. CIFAR-10, because it has 10 classes and is easy to use
B. Fashion-MNIST, because it has clothing images
C. MNIST, because it has handwritten digits
D. ImageNet, because it has 1000 classes and many images per class

Solution

  1. Step 1: Identify dataset class count

    CIFAR-10 has only 10 classes, MNIST and Fashion-MNIST have 10 classes each, ImageNet has 1000 classes.
  2. Step 2: Match dataset to task

    For recognizing 1000 categories, ImageNet is the suitable dataset due to its size and diversity.
  3. Final Answer:

    ImageNet, because it has 1000 classes and many images per class -> Option D
  4. Quick Check:

    1000 classes need ImageNet [OK]
Hint: Use ImageNet for many classes, CIFAR-10 for few [OK]
Common Mistakes:
  • Choosing CIFAR-10 for many classes
  • Confusing MNIST with ImageNet
  • Ignoring class count importance