미누에요

[Deep Learning] 텐서플로우란? (Tensorflow) 본문

AI

[Deep Learning] 텐서플로우란? (Tensorflow)

미누라니까요 2025. 1. 18. 09:35
728x90
반응형
SMALL

 

머신러닝 라이브러리

머신러닝, 딥러닝 공부를 하다 보면 파이썬으로 코드를 구현하는 데 어려움을 겪는 경우가 많다.

어려울 수 있는 코드 작성을 보다 쉽게 작성하도록 패키지박스(?)가 제공되고 있는데, 그것을 우리는 머신러닝 라이브러리 라고 부른다.

 

여러가지 머신러닝 라이브러리 중 우리는 가장 많이 사용되고 있는 텐서플로우(Tensorflow)에 대해서 알아보자.


텐서플로우(Tensorflow)

 

구글(Google)에서 오픈소스로 공개한 머신러닝 라이브러리이다. (프레임워크라고 보는 경우도 있는 듯하다.)

텐서플로우는 일반인들도 사용하기 쉽도록 다양한 기능을 제공한다.

 

지원 언어

  • Python
  • C++
  • Go
  • Java
  • R

텐서플로우를 이용하여 기존의 거의 모든 머신러닝, 딥러닝을 수행할 수 있다.

말 그대로 좀 더 쉽게 코드를 작성하게 하기 위한 것이기 때문이다.

 

텐서플로우는 손글씨 숫자 분류, 이미지 인식과 같은 작업뿐만 아니라, 텍스트 생성, 감정 분석, 번역 모델 등 다양한 자연어 처리(NLP) 작업에서도 사용된다..

 

 

장점

  • 데이터플로 그래프를 통한 풍부한 표현력
  • 텐서플로우 2.x에서는 즉시 실행(Eager Execution)으로 더 직관적이고 사용하기 쉬운 코드를 작성가능
  • 확장성이 뛰어나고 대규모 프로젝트에서도 안정적으로 사용
  • 계산 구조와 목표 함수만 정의하면 자동으로 미분 계산을 처리

 

단점

  • 초기 버전에서는 메모리 사용이 비효율적이라는 지적이 있었으나, 텐서플로우 2.x에서는 이러한 문제가 상당히 개선
  • 텐서 구조에 익숙하지 않으면 진입 장벽이 있을 수 있음

 

 

텐서플로우는 "텐서(Tensor)"라는 자료구조를 사용한다.

 


텐서(Tensor)

텐서(Tensor)는 데이터를 저장하는 다차원 배열로, 0차원 스칼라, 1차원 벡터, 2차원 행렬 등으로 표현할 수 있다. 텐서의 Rank는 데이터의 차원을 나타내며, 예를 들어 Rank가 2인 텐서는 행렬을 의미한다.

 

Rank Type Example
0 scalar [1]
1 vector [1,1]
2 matrix [[1,1],[1,1]]
3 3-tensor [[[1,1],[1,1]],[[1,1],[1,1]],[[1,2],[2,1]]]

    

 

 


요즘에는 텐서플로우가 절대 강자가 아니다. 

Meta 사의 PyTorch가 텐서플로우보다 좀 더 많이 사용되기 시작하고 있으며, Tensorflow보다 편리한 사용성을 갖춰 PyTorch로의 전환이 빨라지고 있다.

 

하지만 자료의 양은 여전히 Tensorflow가 많기 때문에 학습해보는 것을 추천한다.

728x90
반응형
LIST