Tensorflow 102 - 이미지 분류(CNN)

이미지 데이터 이해

수업소개

이미지 데이터가 어떻게 생겼는지 알고, 차원의 개념을 가지고 이미지 데이터를 이해하는 과정입니다. 

 

강의

실습

소스코드

colab |  backend.ai

###########################
# 라이브러리 사용
import tensorflow as tf

###########################
# 샘플 이미지셋 불러오기

(mnist_x, mnist_y), _ = tf.keras.datasets.mnist.load_data()
print(mnist_x.shape, mnist_y.shape)

(cifar_x, cifar_y), _ = tf.keras.datasets.cifar10.load_data()
print(cifar_x.shape, cifar_y.shape)

###########################
# 이미지 출력하기

print(mnist_y[0:10])
import matplotlib.pyplot as plt
plt.imshow(mnist_x[4], cmap='gray')

print(cifar_y[0:10])
import matplotlib.pyplot as plt
plt.imshow(cifar_x[0])


###########################
# 차원 확인
d1 = np.array([1, 2, 3, 4, 5])
print(d1.shape)

d2 = np.array([d1, d1, d1, d1])
print(d2.shape)

d3 = np.array([d2, d2, d2])
print(d3.shape)

d4 = np.array([d3, d3])
print(d4.shape)

###########################
# (5, ), (5, 1), (1, 5) 비교

x1 = np.array([1, 2, 3, 4, 5])
print(x1.shape)
print(mnist_y[0:5])
print(mnist_y[0:5].shape)

x2 = np.array([[1, 2, 3, 4, 5]])
print(x2.shape)

x3 = np.array([[1], [2], [3], [4], [5]])
print(x3.shape)
print(cifar_y[0:5])
print(cifar_y[0:5].shape)

댓글

댓글 본문
  1. 솔나무
  2. 하희목
    ,_ 이게 무슨 의미인가요?
  3. Hotbrains
    완료~ 감사합니다.
  4. songji
  5. 이덕규
    완료
  6. 마시모
    완료~
  7. 정효빈
    완료!
  8. oxugi
    완료
  9. 후니
    완료
  10. ESin99
    완료
  11. 정영주
    완료
  12. 고고고고
    완료
  13. nann
    완료
  14. 소야
    신기하네용.... 백퍼센트 이해는 안되었지만... 일단은 따라만 해 봅니다... ^^
  15. John
    완료
  16. 과거로의여행
    ㅎㅎㅎ, 또 졸린다요~~~ 밥 먹고 강의 들으면 꼭 졸리네요.ㅎㅎㅎ
    잠깐 쉬어야 겠습니다.ㅠㅠ
  17. 제사마
    Done
  18. 호호
    완료
  19. VIBOT
    ok
  20. 과거로의여행
    실제로 하게 된다면 좀 헷갈릴 듯...
    이미지 딥러닝은 컴 사양이 좋아야 하겠네요.

    오늘은 여기까지... 모두들 굿나잇~~~
  21. 회색곰
    수강완료
  22. 완료
  23. 여어엉
    cifar 는 왜 (50000, 1)이 되는지 궁금하네요. 굳이 2차원이 되어야 할 이유를 모르겠어서...?
    완료
  24. hoddigi
    완료
  25. Ray Seo
    완료
  26. wassabi
    완료
  27. CSHOP
    완료
  28. CrashOverride
    1일차 완료
  29. briliant6424
    2021/01/09 완료
  30. 행여
    감사합니다~!♡
  31. 안멘
    완료!
  32. ukmadang
    열심히 따라가고 있습니다!
  33. 유니엘
    완료
  34. younghwani
    너무 재밌네요~ 감사합니다!
  35. Kim Yumi
    이미지 활용 실습 재미났습니다...^^
    이해가 팍팍 되어 너무 만족해요...^^
  36. 오애이오
    확실히 처음과 끝 점의 상대적인 위치가 유용하겠네요..! 찾아볼 거리 주셔서 감사합니다 :D
    대화보기
    • 이선비
      손글씨를 쓰는 동영상이라고 생각해보시면 좋을 것 같아요. 그렇게 이해한다면 32, 32, 3 칼라이미지가 여러장 있으니, 데이터 하나는 4차원으로 구성이 될 겁니다.

      처음과 끝 점의 위치를 표시하는 정도라면 표 데이터와 이미지 데이터, 두 데이터를 입력으로 받아서 학습을 시킬 수도 있어요. "tensorflow multi input" 정도의 키워드로 검색하시면 힌트를 얻으실 수 있습니다. :)
      대화보기
      • 오애이오
        강의 재미있게 들었습니다. 한 가지 궁금한 점은, 수업에서와 같이 단순 이미지가 아닌 상황에서의 손글씨 인식 모델에서 필압이나 글씨가 어디에서 시작되고 끝나는지를 데이터에 포함시키면 학습이 가능할 것 같은데(차원이 늘어나서 더 무거워지긴 하겠지만요), 이러한 경우 2차원 좌표의 숫자를 RGB처럼 다루면 모델이 성립할까요? 그리고 좌표의 이동 시계열까지 포함하면 단순히 차원이 하나 더 늘어나게 되나요?
      • 미오끼
        다음 영상이 기대되요~
      • 이숙번
        콜랩을 사용할 때, 구글 드라이브의 용량을 사용하지는 않아요.
        구글에서 콜랩을 사용할 때마다 클라우드 머신을 새로 배정합니다.
        대화보기
        • noahhan
          colab이 구글 드라이브 기반(?) 이니까 tensorflow에서 제공하는 mnist 파일이나 cifar 파일을
          코드 중간에
          (mnist_x, mnist_y), _ = tf.keras.datasets.mnist.load_data()
          print(mnist_x.shape, mnist_y.shape)

          (cifar_x, cifar_y), _ = tf.keras.datasets.cifar10.load_data()
          print(cifar_x.shape, cifar_y.shape)
          이렇게 받아와 주는데 그러면 (cifar 파일 용량 : 163mb)를 구글 드라이브에서 차지하게 되나요?