[Deep Learning] TensorFlow 기초와 날씨 분류 모델 실습

2026. 1. 12. 16:23·개념 정리 step2/멀티모달(Multi-modal)

안녕하세요!

오늘은 구글이 만든 대표적인 머신러닝 프레임워크인 TensorFlow에 대해 알아보고, 이를 활용해 이미지를 분류하는 인공지능 모델을 직접 만들어 보겠습니다.


1. TensorFlow 기초와 날씨 분류 모델 실습

1-1. 텐서플로우란?

텐서플로우는 데이터 흐름 그래프(Data Flow Graph)를 사용하여 수치 계산을 하는 라이브러리입니다.

  • 노드(Node): 수학적 연산을 수행합니다.
  • 엣지(Edge): 다차원 데이터 배열인 '텐서'를 전달합니다.

1-2. 텐서(Tensor)의 핵심 속성

텐서는 넘파이(NumPy) 배열과 비슷하지만, GPU 가속과 자동 미분이라는 강력한 차별점이 있습니다.

  • Shape (모양): 데이터의 차원 (예: (Batch, Height, Width, Channel))
  • Dtype (자료형): float32, int32 등 데이터의 타입
  • Device: CPU에 있는지 GPU에 있는지 나타냄

1-3. 텐서 조작하기 (코드 핵심 요약)

① 즉시 실행 (Eager Execution)

TF 2.x에서는 파이썬처럼 코드를 실행하자마자 결과를 확인할 수 있습니다.

x = tf.constant([[1, 2], [3, 4]])
# 연산 결과가 바로 출력됨

② 형변환 및 차원 조작

딥러닝에서는 데이터의 형태를 바꾸는 일이 매우 잦습니다.

  • tf.cast: 자료형 변경 (예: int -> float)
  • tf.reshape: 모양 변경 (예: 1열로 나열된 데이터를 행렬로)
  • tf.transpose: 축 교환 (예: 가로세로 뒤집기)
  • tf.expand_dims / tf.squeeze: 차원 늘리기와 줄이기

1-4. 자동 미분 (GradientTape)

딥러닝의 학습 원리인 '역전파'를 가능하게 하는 기술입니다. tf.GradientTape() 블록 안의 연산을 기록하여 기울기를 계산합니다.

with tf.GradientTape() as tape:
    # 연산 기록
    y = tf.nn.sigmoid(x)
# 미분값 계산
dx = tape.gradient(y, x)

 


2. Tensor 실전 프로젝트: 날씨 이미지 분류

4가지 카테고리(Cloudy, Rain, Shine, Sunrise) 이미지를 분류하는 모델을 만들어 봅니다.

2-1. 데이터 전처리

이미지 데이터를 8:2 비율로 나누고, ImageDataGenerator를 사용하여 정규화(1/255) 및 수평 뒤집기 증강을 적용합니다.

Found 900 images belonging to 4 classes. (Training)
Found 225 images belonging to 4 classes. (Validation)

2-2. 모델 설계 비교

성능을 높이기 위해 세 가지 다른 구조의 모델을 실험해 봅니다.

모델 구조 특징 특징
Model 1 Input -> Flatten -> Dense(4) 가장 단순한 선형 모델
Model 2 Dense(64, ReLU) 추가 은닉층을 통한 비선형성 추가
Model 3 다층 은닉층 + Dropout 과적합 방지를 위한 깊은 구조

2-3. 학습 결과 분석

각 모델별로 Epoch가 진행됨에 따라 정확도(Accuracy)가 어떻게 변하는지 확인합니다.

Model 1 Test accuracy: 45.20%
Model 2 Test accuracy: 58.75%
Model 3 Test accuracy: 62.10%

학습 포인트: 단순히 층을 깊게 쌓는 것(MLP)만으로는 이미지 분류 성능에 한계가 있습니다. 다음 시간에는 이미지의 공간 특징을 잡아내는 CNN(합성곱 신경망)을 배워보겠습니다!


마무리

오늘은 TensorFlow의 텐서 연산 기초부터 간단한 이미지 분류기 제작까지 완료했습니다. 딥러닝 학습 시 자료형 불일치(dtype error)나 차원 불일치(shape error)가 자주 발생하므로, tf.cast와 tf.reshape를 능숙하게 다루는 연습이 꼭 필요합니다.

'개념 정리 step2 > 멀티모달(Multi-modal)' 카테고리의 다른 글

[NLP] 단어 임베딩: Word2Vec부터 FastText, GloVe  (0) 2026.01.14
[NLP 기초] 자연어 처리의 시작: 토큰화와 벡터화  (0) 2026.01.13
[CV Archive] YOLOv8 Segmentation: 스타벅스 로고 추출하기  (0) 2026.01.11
[YOLO] 축구 영상 객체 탐지 프로젝트: Nano vs Small 모델 성능 비교 분석  (0) 2026.01.10
YOLOv8을 이용한 이안류 탐지 및 Segmentation 기초  (0) 2026.01.08
'개념 정리 step2/멀티모달(Multi-modal)' 카테고리의 다른 글
  • [NLP] 단어 임베딩: Word2Vec부터 FastText, GloVe
  • [NLP 기초] 자연어 처리의 시작: 토큰화와 벡터화
  • [CV Archive] YOLOv8 Segmentation: 스타벅스 로고 추출하기
  • [YOLO] 축구 영상 객체 탐지 프로젝트: Nano vs Small 모델 성능 비교 분석
고니3000원
고니3000원
공부 내용 정리, 자기발전 블로그 입니다. 기존 네이버 블로그에서 티스토리로 이전했습니다. https://blog.naver.com/pak1010pak
  • 고니3000원
    곤이의 공부 블로그
    고니3000원
  • 전체
    오늘
    어제
    • 분류 전체보기 (178) N
      • 1. AI 논문 + 모델 분석 (20)
        • AI 논문 분석 (13)
        • AI 모델 분석 (7)
      • 2. 자료구조와 알고리즘 (16)
        • 2-1 자료구조와 알고리즘 (13)
        • 2-2 강화학습 알고리즘 (3)
      • 3. 자습 & 메모(실전, 실습, 프로젝트) (25)
        • 3-1 문제 해석 (4)
        • 3-2 메모(실전, 프로젝트) (14)
        • 3-3 배포 실전 공부 (7)
      • 4. [팀] 프로젝트 및 공모전 (14)
        • 4-1 팀 프로젝트(메모, 공부) (1)
        • 4-2 Meat-A-Eye (6)
        • 4-3 RL-Tycoon-Agent (3)
        • 4-4 구조물 안정성 물리 추론 AI 경진대회(D.. (4)
      • 5. [개인] 프로젝트 및 공모전 (0)
        • 4-1 귀멸의칼날디펜스(자바스크립트 활용) (5)
        • 4-2 바탕화면 AI 펫 프로그램 (4)
        • 4-3 개인 프로젝트(기타) (3)
      • 개념 정리 step1 (32)
        • Python 기초 (7)
        • DBMS (1)
        • HTML | CSS (3)
        • Git | GitHub (1)
        • JavaScript (5)
        • Node.js (5)
        • React (1)
        • 데이터 분석 (6)
        • Python Engineering (3)
      • 개념 정리 step2 (57) N
        • Machine | Deep Learning (15)
        • 멀티모달(Multi-modal) (23)
        • 강화 학습 (10)
        • AI Agent (9) N
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

    • 네이버 곤이의 블로그(Naver->Tistory)
    • Github
  • 공지사항

  • 인기 글

  • 태그

    Python
    pandas
    파인튜닝
    논문 리뷰
    Vision
    자료구조
    학습
    자바스크립트
    EfficientNet
    귀칼
    구현
    transformer
    Ai
    javascript
    html
    알고리즘
    OCR학습
    paddleocr
    공모전
    데이터분석
    bottleneck
    프로젝트
    강화 학습
    OCR
    Grad-CAM
    ViT
    파이썬
    github
    강화학습
    Attention Is All You Need
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.5
고니3000원
[Deep Learning] TensorFlow 기초와 날씨 분류 모델 실습
상단으로

티스토리툴바