벡터 전치(Vector Transposition) 알아보기: Tensorflow, Pytorch, Numpy

2024. 7. 14. 15:16·Machine Learning Math/Linear Algebra
반응형

벡터 전치(Vector Transposition)란 무엇인가?

벡터 전치(vector transposition)는 벡터의 행과 열을 교환하는 연산이다. 특정 벡터 $\mathbf{v}$ 가 있다고 했을 때 이 벡터에 대한 전치 연산은 $\mathbf{v}^T$ 로 표현되며, 행 벡터를 열 벡터로 바꿀 때 자주 사용된다.

 

행 벡터 (Row Vector): $\mathbf{v} = \begin{bmatrix} v_1 & v_2 & v_3 & \cdots & v_n \end{bmatrix}$
열 벡터 (Column Vector): $\mathbf{v}^T = \begin{bmatrix} v_1 \\ v_2 \\ v_3 \\ \vdots \\ v_n \end{bmatrix}$

 

벡터 전치가 일어나면, 행과 열이 교환되기 때문에 벡터의 모양도 바뀐다. 예를 들어 (3,2) 형태의 벡터가 있다고 하면, 전치가 일어났을 때 모양은 (2,3)이 된다.

 

Numpy를 사용한 벡터 전치

Numpy를 사용해 벡터 전치 연산을 하려면 일단 2차원 배열을 만들어야 한다. 따라서 np.array([1, 2, 3]) 을 쓰는게 아니라, np.array([[1, 2, 3]]) 을 써서 (3,1) 모양으로 만들어야 한다. 그런 후 T 함수를 호출하면 전치(Transpose) 연산이 된다.

import numpy as np

vector = np.array([[1, 2, 3]])  # 행 벡터
transposed_vector = vector.T    # 열 벡터

print("Vector:", vector)
print("Transposed Vector:\n", transposed_vector)

 

위 코드를 실행하면 다음과 같은 결과가 나온다.

 

 

 

TensorFlow를 활용한 벡터 전치

TensorFlow에서는 2차원 텐서를 만든 후 transpose 함수를 호출하면 전치를 할 수 있다.

import tensorflow as tf

# 2차원 텐서를 만든 후 전치
vector_2d = tf.Variable([[1, 2, 3]])  # 행 벡터
transposed_vector = tf.transpose(vector_2d) # 열 벡터

print("Vector:\n", vector_2d.numpy())
print("Transposed Vector:\n", transposed_vector.numpy())

 

이제 코드를 실행하면 다음과 같은 결과가 나온다.

 

 

Pytorch를 활용한 벡터 전치

Pytorch도 2차원 텐서를 만든 후 t() 함수를 호출하면 전치를 할 수 있다.

import torch

# 2차원 텐서 만든 후 전치
vector_2d = torch.tensor([[1, 2, 3]])    # 행 벡터
transposed_vector = vector_2d.t()  # 열 벡터

print("2D Row Vector:\n", vector_2d)
print("Transposed Vector:\n", transposed_vector)

 

코드를 실행하면 다음과 같은 결과가 나온다.

 

반응형
저작자표시 비영리 변경금지 (새창열림)

'Machine Learning Math > Linear Algebra' 카테고리의 다른 글

Tensor 사칙 연산, 아다마르 곱셈(Hadamard Product) 한 번에 정리하기: Numpy, TensorFlow, PyTorch에서의 사용법 정리  (0) 2024.07.18
기저 벡터(Basis Vector)와 직교 벡터(Orthogonal Vector)  (1) 2024.07.17
L1 Norm, L2 Norm, Squared L2 Norm, Infinity Norm 한 번에 정리하기 : Numpy, TensorFlow, PyTorch 에서 사용하기  (0) 2024.07.16
L2 Norm과 Unit Vector 알아보기 : Numpy, TensorFlow, PyTorch의 Norm 연산과 Unit Vector  (0) 2024.07.15
머신러닝에서의 Tensor란 무엇인가? Numpy, TensorFlow, Pytorch의 Tensor 알아보기  (0) 2024.07.13


'Machine Learning Math/Linear Algebra' 카테고리의 다른 글
  • 기저 벡터(Basis Vector)와 직교 벡터(Orthogonal Vector)
  • L1 Norm, L2 Norm, Squared L2 Norm, Infinity Norm 한 번에 정리하기 : Numpy, TensorFlow, PyTorch 에서 사용하기
  • L2 Norm과 Unit Vector 알아보기 : Numpy, TensorFlow, PyTorch의 Norm 연산과 Unit Vector
  • 머신러닝에서의 Tensor란 무엇인가? Numpy, TensorFlow, Pytorch의 Tensor 알아보기
심플코드
심플코드
프로그래밍을 어렵지 않게 풀어서 설명하는 기술 블로그
    반응형
  • 심플코드
    심플코드
    심플코드
  • 전체
    오늘
    어제
    • 분류 전체보기 (96)
      • 안드로이드를 위한 Coroutines (2)
      • Unit Testing (19)
      • GitHub Actions (0)
      • 공식 문서 번역 (35)
        • Coroutines 공식 문서 (35)
      • 알고리즘 (7)
        • Kotlin 자료구조 (0)
        • 알고리즘 (7)
        • Kotlin으로 구현하는 자료구조 (0)
      • 코딩 테스트 (0)
      • Deep Learning (0)
      • Machine Learning Math (17)
        • Linear Algebra (17)
      • ML (0)
      • Docker (15)
      • Kubernetes (1)
  • 블로그 메뉴

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

  • 공지사항

    • 코틀린 코루틴의 정석 책 출간 소식
  • 인기 글

  • 태그

    unit testing
    Machine Learning
    Coroutines Flow
    numpy
    컨테이너
    도커
    Coroutines
    코루틴 채널
    junit
    Coroutines Channel
    Docker
    Kotlin
    코루틴
    mockito
    TensorFlow
    coroutine
    Coroutines Context
    pytorch
    코루틴 Flow
    unit test
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.3
심플코드
벡터 전치(Vector Transposition) 알아보기: Tensorflow, Pytorch, Numpy
상단으로

티스토리툴바