왕현성
코딩발자취
왕현성
전체 방문자
오늘
어제
  • 코딩 (277)
    • Python (71)
    • Java (16)
    • MySQL (34)
    • 인공지능 (48)
      • 머신러닝 (16)
      • 딥러닝 (32)
    • 영상처리 (4)
    • Rest API (21)
    • Android Studio (25)
    • streamlit (13)
    • DevOps (22)
      • AWS (9)
      • PuTTY (5)
      • Git (4)
      • Serverless (2)
      • Docker (2)
    • IT 기술 용어 (6)
    • 디버깅 ( 오류 해결 과정 ) (17)

블로그 메뉴

  • 홈
  • 태그
  • 방명록

공지사항

인기 글

태그

  • imageprocessing
  • 기상탐사
  • 영상처리
  • labelme UnocodeDecodeError
  • PYTHON
  • ckpt_file
  • ComputerVision
  • UnboundLocalError
  • 컴퓨터비전
  • 딥러닝
  • get_long_description
  • TensorFlow
  • labelme
  • OpenCV
  • 영상기술
  • pip install labelme
  • unsupervised
  • matplotlib
  • 비지도학습
  • numpy
  • 의료이미징
  • yolov8
  • PIL
  • encoding='utf-8'
  • pytorch
  • alibidetect
  • tune()
  • maskimage
  • 영상처리역사
  • alibi-detection

최근 댓글

최근 글

티스토리

250x250
hELLO · Designed By 정상우.
왕현성

코딩발자취

딥러닝 : Fashion mnist 10개로 분류된 패션 이미지를 tensorflow를 이용해 분류하기 / Flatten , softmax , 분류의 문제 loss 셋팅법
인공지능/딥러닝

딥러닝 : Fashion mnist 10개로 분류된 패션 이미지를 tensorflow를 이용해 분류하기 / Flatten , softmax , 분류의 문제 loss 셋팅법

2022. 12. 28. 18:05
728x90

1. 이미지와 행렬

모든 이미지 사진은 픽셀당 숫자로 되어있습니다.
0~255까지 되어있고 0이 검정색, 255가 흰색입니다.
그 숫자의 데이터 타입은 Uint8(Unsigned int) 이라고 적습니다.
먼저 검정부터 회색 , 흰색으로만 되어있는데 그걸 그레이 스케일이라고 합니다. (gray image)
컬러 이미지는 RGB 3개를 사용하고, colored Image 라고 합니다.
컬러 이미지를 그레이 스케일로 바꿔서 사용합니다. (컴퓨터가 특징을 잘잡기 때문)

 

2. 인공지능 학습에 필요한 데이터 가져오기

밑에서 할 코딩은 https://github.com/zalandoresearch/fashion-mnist#labels 를 사용합니다.

 

mnist=tf.keras.datasets.fashion_mnist

트레이닝과 테스트셋 가져오기

(X_train,y_train),(X_test,y_test)=mnist.load_data()

shape 확인

이미지를 보여주는 imshow()

import matplotlib.pyplot as plt
plt.imshow(X_train[200],cmap='gray')
plt.show()

피쳐스케일링 과정

모델링 과정!!!!!!

def build_model():
  model = Sequential()
  model.add( Flatten()  )
  model.add( Dense(128, 'relu') )
  model.add( Dense(64, 'relu') )
  model.add( Dense(10, 'softmax'))
  model.compile('adam', 'sparse_categorical_crossentropy', ['accuracy'])
  return model

Flatten => 이미지의 가로 세로를 전부 일렬로 만드는 작업 , 2차원, 3차원을 1차원으로 만드는것

Sequential: SEQUENCE layers 로 모델링

Flatten: 2차원, 3차원을 1차원으로 만드는것

Dense: 뉴런을 레이어에 붙인다.

각 레이어는 activation function 이 필요하다.

Relu 액티베이션 함수 참고 https://docs.google.com/presentation/d/1DCOW7Lum2rnoPU7gxpznimrXV0DOJFc-YkkJt3jZC0U/edit#slide=id.ga8aac09587_0_2

Softmax 여러개의 값 중에서 가장 큰 값을 선택. [0.1, 0.1, 0.05, 0.1, 9.5, 0.1, 0.05, 0.05, 0.05], 여기서 가장 큰 값을 1로 만들고 나머지는 0으로 만들어준다. [0,0,0,0,1,0,0,0,0]

 

분류의 문제에서 loss를 셋팅하는 방법

# 2개로 분류하는 문제에서의 로스 펑션은 'binary_crossentropy'를 사용.
# 3개 이상으로 분류하는 문제에서는 2가지 방법이 있다.
# y의 값을 확인하여 선택하는 것이다.

# 1번째 방법은 y값이 레이블 인코딩으로 되어있으면, sparse_categorical_crossentropy
# 2번째 방법은 y값이 원핫인코딩으로 되어있으면, categorical_crossentropy

 

 

 

'인공지능 > 딥러닝' 카테고리의 다른 글

딥러닝 : epochs의 횟수를 늘렸을 때 학습데이터/밸리데이션 데이터와 OverFitting  (0) 2022.12.29
딥러닝 : softmax로 나온 결과를 레이블 인코딩으로 바꾸는 방법  (0) 2022.12.29
딥러닝 : validation data와 Callback(EarlyStopping Library) 사용법  (0) 2022.12.28
딥러닝 : learning rate를 optimizer에 셋팅하기.  (0) 2022.12.28
딥러닝 : Tensorflow로 리그레션 문제 모델링 하는 방법  (0) 2022.12.28
    '인공지능/딥러닝' 카테고리의 다른 글
    • 딥러닝 : epochs의 횟수를 늘렸을 때 학습데이터/밸리데이션 데이터와 OverFitting
    • 딥러닝 : softmax로 나온 결과를 레이블 인코딩으로 바꾸는 방법
    • 딥러닝 : validation data와 Callback(EarlyStopping Library) 사용법
    • 딥러닝 : learning rate를 optimizer에 셋팅하기.
    왕현성
    왕현성
    AI 머신비전 학습일지

    티스토리툴바