Tensor의 구조, 전치, 차원 변경

Hot potato·2025년 1월 23일

AI 비전 컴퓨팅

목록 보기
7/13
post-thumbnail

Numpy

  • 일반적인 파이썬에서 제공하는 기본 리스트는 기계 학습에 적합하지 않으며, 연산 속도도 중요하기 때문에 기본 리스트 대신 Numpy를 사용하게 된다!
  • 기본 파이썬 리스트와 Numpy 차이점을 아래 사이트에서 잘 정리해놨다 ㅎㅅㅎ (모든걸 이 블로그에 담기엔 내용도 방대하고 이미 좋은 정보가 차고 넘치기 때문에 패스..)
    https://predictivehacks.com/tips-about-numpy-arrays/

Numpy 장점

  1. 다차원 리스트나 크기가 큰 데이터 처리에 유리
  2. 벡터나 행렬 같은 선형대수 표현법을 코드로 처리 가능

Tensor

Numpy와 더불어 많이 언급되는 Tensor는 Numpy에서 선형대수에 사용하는 스칼라(0차원), 벡터(1차원), 행렬(2차원)뿐 아니라 고차원 배열(3차원 이상)까지 포괄하는 개념이다❗❗

Numpy에서 Tensor 사용 예시

  1. 스칼라(0차원 텐서)
scalar = np.array(5)  # 0차원 텐서
  1. 벡터(1차원 텐서)
vector = np.array([1, 2, 3])  # 1차원 텐서
  1. 행렬 (2차원 텐서)
matrix = np.array([[1, 2], [3, 4]])  # 2차원 텐서
  1. 3차원 이상의 텐서
tensor = np.array([[[1, 2], [3, 4]], [[5, 6], [7, 8]]])  # 3차원 텐서

4-1. Vision에서는 (batch size, length, dim)

텐서와 선형대수 연산

NumPy는 벡터, 행렬, 텐서 연산에 필요한 다양한 선형대수 연산 기능을 제공한다❗❗

  • 벡터와 벡터의 내적: np.dot(vector1, vector2)
  • 행렬 곱: np.matmul(matrix1, matrix2) 또는 matrix1 @ matrix2
  • 전치 행렬: matrix.T
  • 역행렬: np.linalg.inv(matrix)

📌딥러닝에 입력 가능한 텐서 데이터 예제

https://velog.io/@codud1434/MNIST-%EB%8D%B0%EC%9D%B4%ED%84%B0%EC%85%8B-%EB%A1%9C%EB%93%9C-%EB%B0%8F-%EC%8B%9C%EA%B0%81%ED%99%94-%EA%B8%B0%EB%B3%B8-%EC%98%88%EC%A0%9C

위에 벨로그를 참고해주세요!

profile
결국 난 잘될사람🍀 아자아자🥔

0개의 댓글