말랑말랑제리스타일

케라스에서 지원하는 MNIST 데이터셋 등 데이터셋 종류 본문

프로그래밍/딥러닝

케라스에서 지원하는 MNIST 데이터셋 등 데이터셋 종류

제리제리 2024. 3. 22. 08:26

딥러닝 강의를 듣고 있는데 케라스의 패션 MNIST 데이터셋을 사용하기에 다른 케라스 데이터셋은 어떤 게 있는지 한번 알아봤습니다.

총 7가지 데이터셋으로 되어있으며 설명은 간단히 진행합니다.

MNIST 데이터셋(손글씨 데이터)

가장 대표적인 MNIST 데이터셋으로 손글씨로 0~9까지 써둔 28*28 이미지를 훈련용 데이터셋 60,000개, 테스트용 데이터셋 10,000개로 제공합니다.

from tensorflow.keras import datasets
data = datasets.mnist
(train_x, train_y), (test_x, test_y) = data.load_data()

이런 소스를 이용해 데이터를 끌어올 수 있습니다.

 

패션 MNIST 데이터셋(의류 분류용 데이터)

마찬가지로 MNIST에서 지원하는 데이터셋으로 의류를 카테고리로 분류하는 데이터셋입니다.

MNIST 데이터셋과 마찬가지로 패션 MNIST 데이터셋 역시 28*28의 훈련용 데이터 60,000개, 테스트용 데이터 10,000개로 이루어져 있습니다. 참고로 컬러 이미지는 아니고 1 채널의 Gray Scale로 제공됩니다.(소위 말하는 흑백이미지)

레이블 별 설명은 아래와 같습니다.

Label Description
0 티셔츠
1 바지
2 스웨터
3 드레스
4 코트
5 샌달
6 셔츠
7 운동화
8 가방
9 부츠

 

예시 이미지로는 아래와 같습니다.

패션 MNIST 데이터셋의 첫번째 항목
패션 MNIST 데이터셋의 첫번째 항목

 

from tensorflow.keras import datasets
data = datasets.fashion_mnist
(train_x, train_y), (test_x, test_y) = data.load_data()

마지막으로 패션 MNIST 데이터셋을 불러오는 방법은 이런 소스가 되겠죠.

 

CIFAR10 Small Image 분류 데이터 셋

다음은 CIFAR10 Small Image Classification이라는 데이터셋입니다.

CIFAR10 Small Image 분류 데이터셋
CIFAR10 Small Image 분류 데이터셋

CIFAR이라는 곳에서 제공하는 이미지 데이터셋이며, 32 * 32의 컬러 데이터 60,000개를 제공합니다.

MNIST 데이터셋과 마찬가지로 CIFAR10 Small Image 데이터셋 역시 50,000개의 훈련용 데이터와 10,000개의 테스트용 데이터로 구성됩니다.

keras.datasets.cifar10.load_data()
(x_train, y_train), (x_test, y_test) = keras.datasets.cifar10.load_data()

이런 소스를 이용해 데이터를 불러올 수 있으며, 카테고리는 상단 그림에 나와있지만 표로 정리하면 이렇습니다.

Label Description
0 airplane
1 automobile
2 bird
3 cat
4 deer
5 dog
6 frog
7 horse
8 ship
9 truck

 아무래도 컬러 이미지다 보니 MNIST나 패션 MNIST보다는 분류 난이도가 높을 것 같네요.

 

CIFAR100 Small Image 분류 데이터 셋

CIFAR10과 마찬가지로 CIFAR에서 제공하는 데이터셋이며, 60,000개의 32 * 32 컬러 데이터입니다.

CIFAR10과 CIFAR 100의 다른 점은 CIFAR 100 Small Image 분류 데이터셋에는 클래스 개념이 있다는 건데요.

상위 클래스 20가지 하위에 각 5개의 클래스가 존재하고 레이블이 상위 클래스와 하위 클래스 2가지 단계로 분류가 되겠네요.

Superclass Classes
aquatic mammals beaver, dolphin, otter, seal, whale
fish aquarium fish, flatfish, ray, shark, trout
flowers orchids, poppies, roses, sunflowers, tulips
food containers bottles, bowls, cans, cups, plates
fruit and vegetables apples, mushrooms, oranges, pears, sweet peppers
household electrical devices clock, computer keyboard, lamp, telephone, television
household furniture bed, chair, couch, table, wardrobe
insects bee, beetle, butterfly, caterpillar, cockroach
large carnivores bear, leopard, lion, tiger, wolf
large man-made outdoor things bridge, castle, house, road, skyscraper
large natural outdoor scenes cloud, forest, mountain, plain, sea
large omnivores and herbivores camel, cattle, chimpanzee, elephant, kangaroo
medium-sized mammals fox, porcupine, possum, raccoon, skunk
non-insect invertebrates crab, lobster, snail, spider, worm
people baby, boy, girl, man, woman
reptiles crocodile, dinosaur, lizard, snake, turtle
small mammals hamster, mouse, rabbit, shrew, squirrel
trees maple, oak, palm, pine, willow
vehicles 1 bicycle, bus, motorcycle, pickup truck, train
vehicles 2 lawn-mower, rocket, streetcar, tank, tractor

 각 레이블에 들어가는 상위 클래스와 하위 클래스는 이렇게 구성이 됩니다.

예를 들어 어떤 이미지에 대해서 레이블이 상위 클래스로 사람, 하위 클래스로 남성 이런 느낌이 되겠죠.

따라서 총 레이블은 100가지가 되며, 각 레이블 별로 훈련용 이미지 500개, 테스트용 이미지 100개로 구성되어 있습니다.

전체 이미지는 훈련용 데이터 50,000개와 테스트용 데이터 10,000개로 구성되겠죠.

keras.datasets.cifar100.load_data(label_mode="fine")
(x_train, y_train), (x_test, y_test) = keras.datasets.cifar100.load_data()

데이터 불러오는 방법은 CIFAR10과 대체로 유사합니다.

 

IMDB 영화 리뷰 감정 분류 데이터셋

IMDB 영화 리뷰 감정 분류 데이터셋은 IMDB에서 제공하는 데이터셋으로 25,000개의 영화 리뷰 데이터를 제공합니다.

리뷰가 텍스트로 제공이 되며 레이블은 긍정적인지 부정적인지로 나누어진다고 합니다.

keras.datasets.imdb.load_data(
    path="imdb.npz",
    num_words=None,
    skip_top=0,
    maxlen=None,
    seed=113,
    start_char=1,
    oov_char=2,
    index_from=3,
    **kwargs
)

keras.datasets.imdb.get_word_index(path="imdb_word_index.json")

이런 파이썬 소스로 당겨올 수 있고 option을 다양하게 줘서 필요 없는 데이터를 날리거나 할 수 있는 것으로 보입니다.

나중에 사용해봐야겠네요.

 

Reuters newswire 분류 데이터셋

Reuters에서 제공하는 11,228개의 데이터로 구성된 뉴스와이어 데이터로 46가지 주제로 분류되는 데이터셋입니다.

keras.datasets.reuters.load_data(
    path="reuters.npz",
    num_words=None,
    skip_top=0,
    maxlen=None,
    test_split=0.2,
    seed=113,
    start_char=1,
    oov_char=2,
    index_from=3,
)
keras.datasets.reuters.get_word_index(path="reuters_word_index.json")

영화 리뷰 데이터셋과 마찬가지로 데이터 로드 시 다양한 파라미터로 필터링해서 가져올 수 있습니다.

따로 케라스 홈페이지에 명시된 부분은 없어 필요하다면 46가지 주제의 레이블은 데이터 당겨서 뽑아봐야 알 수 있겠네요.

 

California Housing price 데이터셋

마지막으로 캘리포니아의 부동산 가격을 예측하는 California Housing Price 데이터셋입니다.

실제로 저는 사용해보지는 않았지만 딥러닝 공부하면서 몇 번 접해본 데이터인데요.

20,640개의 샘플을 8가지 특징과 함께 제공해 주는 데이터셋입니다.

keras.datasets.california_housing.load_data(
    version="large", path="california_housing.npz", test_split=0.2, seed=113
)

제가 알기로는 8가지 특징을 조합해서 캘리포니아에 있는 집의 가격을 학습시키고 이 학습된 데이터를 이용해 집값을 예측하는 데이터셋으로 알고 있습니다.

마지막으로 참고한 사이트는 케라스 공식 사이트를 참고했습니다.

 

Keras documentation: California Housing price regression dataset

California Housing price regression dataset [source] load_data function keras.datasets.california_housing.load_data( version="large", path="california_housing.npz", test_split=0.2, seed=113 ) Loads the California Housing dataset. This dataset was obtained

keras.io

 

반응형
Comments