NIRVANA

[7장 1 ~ 3절] 딥러닝 비전 본문

AI/컴퓨터 비전과 딥러닝

[7장 1 ~ 3절] 딥러닝 비전

녜잉 2023. 7. 17. 22:54

*파이썬 버전이 여러개 깔려 있는데 이중 matplotlib이 도대체 어디에 설치되어 있는지를 모르겠어서..그냥 코랩에서 했다..^~^

 

 

import tensorflow as tf
import tensorflow.keras.datasets as ds
import matplotlib.pyplot as plt

(x_train, y_train), (x_test, y_test) = ds.mnist.load_data()
print(x_train.shape, y_train.shape, x_test.shape, y_test.shape)

x의 데이터 형태를 보면 각각 28x28맵이 60,000장 10,000만장 쌓여있는 3차원 구조임을 알 수 있다. 

 

plt.figure(figsize=(24, 3))
plt.suptitle('MNIST', fontsize=30)
for i in range(10):
  plt.subplot(1, 10, i+1)
  plt.imshow(x_train[i], cmap='gray')
  plt.xticks([]); plt.yticks([])
  plt.title(str(y_train[i]), fontsize=30

load_data()함수로 MNIST 데이터셋을 읽어온다. 

MNIST에는 70,000개의 필기 숫자 샘플이 있으며 60,000개의 훈련 집합과 10,000개의 테스트 집합으로 분할되어 있다. 

특징 벡터(모델의 입력, 즉 x값)는 숫자 28 x 28 맵으로 표현

참값(모델의 출력, 즉 y값)은 숫자 부류를 나타내기 위해 0~9사이의 값을 가진다. 

 

(x_train, y_train), (x_test, y_test) = ds.cifar10.load_data()
print(x_train.shape, y_train.shape, x_test.shape, y_test.shape)
class_name = ['airplane', 'car', 'bird', 'cat', 'deer', 'dog', 'frog', 'horse', 'ship', 'truck']

CIFAR-10의 특징 벡터는 RGB를 표현하기 위해 32x32 맵이 3장으로 되어 있는 구조로  32x32x3의 맵으로 표현된다. 

x의 데이터 형태를 확인해보면 32x32x3 맵이 각각 50,000장 10,000장 쌓여 있는 4차원 구조임을 알 수 있다. 

 

딥러닝에서는 다차원 배열을 텐서라고 부른다. 

따라서 MNIST의 x_train은 60,000x28x28의 3차원 텐서이고 y_train은 60,000크기의 1차원 텐서이다. 

plt.figure(figsize=(24, 3))
plt.suptitle('CIFAR-10', fontsize=30)
for i in range(10):
  plt.subplot(1, 10, i+1)
  plt.imshow(x_train[i], cmap='gray')
  plt.xticks([]); plt.yticks([])
  plt.title(class_name[y_train[i, 0]], fontsize=30)

 

subplot은 현재 조작중인 figure에  subplot을 만드는 것으로

plt.subplot(nrow, ncols, index)

와 같이 사용한다. 

nrow: 행의 수

ncols: 열의 수

index: 위치

좌측 상단에서부터 1로 시작하며, 오른쪽으로 세어나간다. 해당 행을 다 센 경우에는 다음 행부터 이어서 센다. 

참고: https://tempdev.tistory.com/35

 

Matplotlib로 subplot을 생성하고, 겹치지 않게 하기

matplotlib를 사용하면서 subplot을 만들어야 하는 상황이 생긴다. subplot(), add_subplot(), subplots() 이 세 개의 함수은 subplot을 만드는데 쓰인다. 사용법의 차이를 알아보기 위하여 아래 x로부터 생성된 y1,

tempdev.tistory.com

 

 


 

참고 및 출처: https://www.yes24.com/Product/Goods/116755317

 

컴퓨터 비전과 딥러닝 - YES24

OpenCV와 텐서플로를 활용한 85개 파이썬 프로그램으로 배우는 컴퓨터 비전첫째! 이론과 실습으로 균형 있게 배우는 컴퓨터 비전! 고전 방법과 딥러닝 방법으로 컴퓨터 비전 이론을 배우고 85개 파

www.yes24.com