텐서(Tensor)란? AI가 숫자 데이터를 담는 다차원 배열
TL;DR
GLOSSARY: 텐서는 AI 모델이 숫자, 이미지, 음성, 텍스트 토큰 같은 데이터를 담고 계산하는 다차원 배열입니다. 쉽게 말해 숫자 한 개, 숫자 줄, 표, 여러 장의 이미지 묶음까지 같은 방식으로 다루게 해 주는 기본 데이터 구조입니다. AI 개발 문서에서 TensorFlow, PyTorch, TPU, 모델 파라미터 이야기가 나오면 대부분 이 텐서 계산을 바탕으로 이해하면 됩니다.
핵심 3줄 요약
- 핵심 1
텐서는 스칼라, 벡터, 행렬을 포함하는 N차원 데이터 구조입니다. - 핵심 2
AI 모델은 입력값, 출력값, 가중치, 중간 계산값을 텐서 형태로 다루는 경우가 많습니다. - 핵심 3
텐서를 알면 TensorFlow, PyTorch, GPU, TPU, 모델 학습 설명을 훨씬 덜 어렵게 읽을 수 있습니다.
이 글에서 다룰 내용
- 텐서의 한 문장 정의
- 텐서가 AI에서 중요한 이유
- 숫자, 이미지, 문장으로 보는 쉬운 예시
- 배열, 벡터, 행렬, 파라미터, TPU와의 차이
- 실전에서 텐서를 만나는 상황
- 초보자가 주의해야 할 점과 FAQ
한 문장 정의
텐서는 AI 모델이 입력, 출력, 파라미터, 중간 계산값을 표현하기 위해 쓰는 다차원 배열형 데이터 구조입니다.
한 줄 정리: 텐서는 "AI가 계산하기 좋게 데이터를 숫자 묶음으로 담는 그릇"이라고 이해하면 됩니다.
왜 텐서를 알아야 하나요?
AI를 직접 개발하지 않아도 텐서라는 말은 자주 보입니다. TensorFlow는 이름부터 텐서를 중심으로 한 프레임워크이고, PyTorch 문서도 모델의 입력, 출력, 파라미터를 텐서로 인코딩한다고 설명합니다.
초보자에게 중요한 점은 수학적 정의를 모두 외우는 것이 아닙니다. 감자나라ai님이 AI 문서를 읽을 때 "모델이 다루는 데이터는 결국 숫자 묶음으로 바뀐다"는 흐름을 잡는 것이 핵심입니다. 이미지는 픽셀 숫자 묶음이 되고, 문장은 토큰 ID나 임베딩 숫자 묶음이 되며, 모델 내부 가중치도 숫자 묶음으로 저장됩니다.
핵심 인사이트: AI 모델은 사람처럼 사진이나 문장을 그대로 보는 것이 아니라, 계산 가능한 숫자 배열로 바꾼 뒤 그 배열 사이의 패턴을 학습합니다.
쉬운 예시로 보면 텐서는 어떻게 생겼나요?
가장 쉬운 출발점은 차원입니다. TensorFlow 문서는 텐서를 같은 데이터 타입을 가진 다차원 배열로 설명하고, 스칼라 같은 rank 0 텐서부터 예시를 보여 줍니다.
- 숫자 하나인 7은 0차원 텐서처럼 볼 수 있습니다.
- 숫자 목록인 [3, 5, 9]는 1차원 텐서처럼 볼 수 있습니다.
- 행과 열이 있는 표는 2차원 텐서처럼 볼 수 있습니다.
- 여러 장의 컬러 이미지를 한 번에 묶으면 높이, 너비, 색상 채널, 이미지 개수 같은 축을 가진 더 높은 차원의 텐서가 됩니다.
예를 들어 224 x 224 크기의 컬러 이미지 32장을 모델에 넣는다고 해 보겠습니다. 개발 문서에서는 이를 32, 224, 224, 3 같은 shape로 표현할 수 있습니다. 여기서 32는 이미지 개수, 224와 224는 이미지 크기, 3은 빨강·초록·파랑 색상 채널을 뜻합니다.
실전 팁: 텐서 shape를 보면 "데이터가 어떤 묶음 구조로 들어가는지"를 먼저 보면 됩니다. 숫자 자체보다 각 축이 무엇을 의미하는지가 더 중요합니다.
헷갈리는 용어와 차이
텐서와 배열은 무엇이 다른가요?
초보자 관점에서는 텐서를 배열과 비슷하게 이해해도 괜찮습니다. PyTorch 문서도 텐서가 배열과 행렬과 매우 비슷한 특수 데이터 구조라고 설명합니다. 다만 AI 프레임워크의 텐서는 GPU나 다른 가속기에서 빠르게 계산되도록 설계되고, 자동 미분 같은 학습 기능과 연결된다는 점이 다릅니다.
텐서와 벡터, 행렬은 무엇이 다른가요?
벡터는 보통 1차원 숫자 목록, 행렬은 보통 2차원 숫자 표를 말합니다. 텐서는 더 넓은 말입니다. 숫자 하나, 벡터, 행렬, 3차원 이상의 배열을 모두 텐서라는 큰 개념 안에서 다룰 수 있습니다.
텐서와 파라미터는 같은 말인가요?
같은 말은 아닙니다. 파라미터는 모델이 학습하면서 조정하는 내부 값입니다. 그 파라미터가 실제로는 텐서 형태로 저장되는 경우가 많습니다. 즉, 텐서는 데이터 구조이고, 파라미터는 그 안에 담길 수 있는 학습 대상 값입니다.
텐서와 TPU는 어떤 관계인가요?
TPU는 Tensor Processing Unit의 줄임말로, 텐서 계산을 빠르게 처리하도록 설계된 AI 가속기입니다. 텐서는 데이터 구조이고, TPU는 그 텐서 계산을 빠르게 수행하는 하드웨어에 가깝습니다. 최근 발행한 NPU 글과 연결해서 보면, NPU·GPU·TPU는 모두 AI 계산을 빠르게 하기 위한 가속기 범주에서 이해할 수 있습니다.
비교 정리: 텐서는 계산할 데이터의 모양이고, TensorFlow와 PyTorch는 텐서를 다루는 개발 도구이며, GPU와 TPU는 텐서 계산을 빠르게 처리하는 하드웨어입니다.
실전에서 텐서는 어디에 쓰이나요?
첫째, 모델 입력에 쓰입니다. 이미지를 모델에 넣으면 픽셀값이 텐서로 바뀝니다. 문장을 모델에 넣으면 토큰 ID나 임베딩 벡터가 텐서로 다뤄질 수 있습니다. 음성도 일정한 시간 단위의 숫자 신호로 바뀌면 텐서 형태로 처리할 수 있습니다.
둘째, 모델 출력에 쓰입니다. 이미지 분류 모델은 각 후보 클래스의 점수나 확률을 텐서로 출력할 수 있습니다. 생성형 AI 모델도 다음 토큰 후보, 중간 표현, 로짓, 확률 분포 같은 값을 텐서 계산으로 다룹니다.
셋째, 모델 파라미터에 쓰입니다. 신경망의 가중치와 편향은 큰 숫자 묶음입니다. PyTorch 문서는 텐서가 모델의 입력과 출력뿐 아니라 모델 파라미터를 인코딩하는 데도 쓰인다고 설명합니다.
넷째, 학습과 추론 속도에 영향을 줍니다. 텐서의 shape가 너무 크면 메모리와 연산량이 커집니다. 그래서 배치 크기, 이미지 해상도, 컨텍스트 길이, 모델 크기 같은 설정은 실제 비용과 속도에 영향을 줍니다.
실전 팁: AI 도구 설명에서 shape, batch, dimension, embedding, parameter 같은 말이 보이면 "텐서의 모양과 계산량을 말하는구나"라고 먼저 잡으면 됩니다.
주의할 점
첫째, 텐서라는 말이 항상 어렵고 추상적인 수학만 뜻하는 것은 아닙니다. AI 개발 문서에서는 대부분 "계산 가능한 다차원 숫자 배열"이라는 실용적 의미로 쓰입니다.
둘째, shape를 잘못 이해하면 오류가 납니다. 예를 들어 모델이 이미지 묶음을 32, 224, 224, 3 형태로 기대하는데 실제 데이터가 224, 224, 3, 32 형태로 들어가면 같은 숫자 개수라도 의미가 달라질 수 있습니다.
셋째, 텐서가 크다고 항상 좋은 것은 아닙니다. 큰 텐서는 더 많은 정보를 담을 수 있지만, 메모리 사용량과 계산 비용도 커집니다. AI 제품을 운영할 때는 품질, 속도, 비용 사이의 균형을 봐야 합니다.
주의: 텐서 shape나 차원 수는 모델 품질을 바로 보장하지 않습니다. 어떤 데이터가 어떤 축에 담겼고, 그 구조가 모델 목적에 맞는지가 더 중요합니다.
FAQ
Q1. 텐서는 개발자만 알아야 하나요?
아닙니다. 직접 코드를 짜지 않아도 텐서를 알면 AI 제품 설명을 더 잘 이해할 수 있습니다. 특히 이미지 크기, 배치 크기, 임베딩 차원, 모델 파라미터, GPU·TPU 설명을 읽을 때 도움이 됩니다.
Q2. 텐서와 행렬은 같은 말인가요?
행렬은 보통 2차원 숫자 표입니다. 텐서는 행렬을 포함하는 더 넓은 개념입니다. 숫자 하나, 숫자 줄, 표, 이미지 묶음처럼 차원이 다른 데이터 구조를 모두 텐서로 표현할 수 있습니다.
Q3. TensorFlow의 Tensor와 PyTorch의 Tensor는 같은 개념인가요?
큰 개념은 비슷합니다. 둘 다 AI 모델의 입력, 출력, 파라미터, 계산값을 다루는 핵심 데이터 구조로 텐서를 사용합니다. 다만 실제 API, 실행 방식, 자동 미분 처리, 장치 이동 방식은 프레임워크마다 다를 수 있습니다.
Q4. 텐서 shape는 왜 중요한가요?
shape는 텐서가 각 차원에 몇 개의 값을 갖는지 보여 줍니다. Google Machine Learning Glossary는 Tensor shape를 여러 차원의 원소 수로 설명합니다. 모델은 보통 정해진 shape의 입력을 기대하므로, shape가 맞지 않으면 오류가 나거나 엉뚱한 결과가 나올 수 있습니다.
Q5. 텐서를 알면 챗GPT 같은 생성형 AI도 더 잘 이해할 수 있나요?
도움이 됩니다. 챗GPT 같은 언어 모델의 내부를 모두 알 필요는 없지만, 문장이 토큰으로 바뀌고, 토큰이 숫자 표현으로 바뀌며, 모델이 그 숫자 묶음을 계산한다는 흐름을 이해할 수 있습니다.
출처
마무리
텐서는 AI를 이해할 때 가장 기본이 되는 데이터 구조입니다. 초보자는 오늘 세 가지만 기억하면 충분합니다. 텐서는 다차원 배열이고, AI 모델의 입력·출력·파라미터가 텐서로 다뤄지며, shape는 그 데이터가 어떤 모양으로 묶였는지 보여 주는 정보입니다.
감자나라ai님이 앞으로 TensorFlow, PyTorch, GPU, TPU, 임베딩, 모델 파라미터 같은 설명을 볼 때는 먼저 "이 데이터가 어떤 텐서 모양으로 계산되는가"를 떠올리면 됩니다. 그러면 AI 개발 문서와 제품 설명이 훨씬 덜 낯설게 보입니다.
