Pyorch Tensor manipulation
by DINHO
오랜만에 포스팅입니다!! 개학하고 아주 정신이 없네요😅
오늘은 Pytorch를 이용하여 간단한 행렬 방정식푸는 python 코드를 간단하게 소개해볼까 합니다.
이 내용은 광운대학교 전기공학과 인공지능응용 수업 과제입니다. 혹시라도 후배님들이 이 글을 보게 된다면 비밀로 하고 과제를 진행해주세요 ㅎㅎ
행렬 방정식 풀기 (단, Pytorch만을 사용한다)
-
다음 행렬 방정식을 ‘Pseudo inverse matrix’를 이용해 풀어보자
-
$A^{T}A$의 역행렬이 존재한다고 가정
\(Ax=B\) \(A = \begin{bmatrix}0 & 1 \\ 1 & 1 \\ 2 & 1 \\ 3 & 1 \end{bmatrix}\) \(B = \begin{bmatrix}-1 \\ 0.2 \\ 0.9 \\ 2.1 \end{bmatrix}\)
import torch
# 행렬 A와 벡터 B 정의
A = torch.FloatTensor([[0, 1], [1, 1], [2, 1], [3, 1]])
B = torch.FloatTensor([-1, 0.2, 0.9, 2.1]).reshape(-1, 1)
# Pseudo 역행렬 계산: (A^T A)^{-1} A^T
A_pseudo_inv = torch.inverse(A.T @ A) @ A.T
# 방정식 Ax = B에서 x 계산
x = A_pseudo_inv @ B
print(x)
간단한 코드라 쉽게 이해할 수 있을 겁니다.
Follow my github