미누에요
[Deep Learning] 텐서플로우란? (Tensorflow) 본문
머신러닝 라이브러리
머신러닝, 딥러닝 공부를 하다 보면 파이썬으로 코드를 구현하는 데 어려움을 겪는 경우가 많다.
어려울 수 있는 코드 작성을 보다 쉽게 작성하도록 패키지박스(?)가 제공되고 있는데, 그것을 우리는 머신러닝 라이브러리 라고 부른다.
여러가지 머신러닝 라이브러리 중 우리는 가장 많이 사용되고 있는 텐서플로우(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가 많기 때문에 학습해보는 것을 추천한다.
'AI' 카테고리의 다른 글
[LLM] Unsloth란 ? (1) | 2025.05.05 |
---|---|
[Rainforce Learning] DeepSeek와 PPO, GRPO (0) | 2025.04.03 |
[Machine Learning] 경사하강법(Gradient Descent, GD) (0) | 2025.01.03 |
[Deep Learnig] Loss Function(손실함수), Binary Cross-Entropy Loss(Log Loss), Categorical Cross-Entropy Loss (0) | 2025.01.02 |
[Deep Learning] 다층 퍼셉트론(Multi-Layer Perceptorn), XOR 게이트 표현 (0) | 2024.12.27 |