텐서(tensor)의 각 요소에 대한 사인 값을 계산하려면 torch.sin() 메서드를 사용합니다. 이 메서드는 입력으로 텐서 하나를 받으며, 원본 입력 텐서의 각 요소를 사인 변환한 값을 담은 새로운 텐서를 반환합니다.
torch.sin() 사용 단계
필요한 라이브러리 임포트: 아래의 모든 파이썬 예제에서는 torch 라이브러리가 필요합니다. 실행 전에 PyTorch가 설치되어 있는지 먼저 확인하세요.
텐서 생성 및 출력: 사인 값을 계산할 텐서를 만들고 내용을 확인합니다.
torch.sin(input) 호출: 텐서인 input을 인자로 전달하면, 입력 텐서의 각 요소에 대한 사인 값을 포함하는 새로운 텐서가 반환됩니다.
결과 확인: 사인 값이 적용된 새 텐서를 출력하여 결과를 확인합니다.
예제 1 – 1차원 텐서
# 텐서 요소의 사인 값을 계산하는 파이썬 프로그램
# 필요한 라이브러리 임포트
import torch
# 텐서 생성
T = torch.Tensor([1.3, 4.32, 4.4, 5.3, 4.5])
print("Original Tensor T:\n", T)
# 위 텐서의 사인 값 계산
sine_T = torch.sin(T)
print("Sine value of elements of tensor T:\n", sine_T)출력 결과
Original Tensor T:
tensor([1.3000, 4.3200, 4.4000, 5.3000, 4.5000])
Sine value of elements of tensor T:
tensor([ 0.9636, -0.9240, -0.9516, -0.8323, -0.9775])위 결과에서 볼 수 있듯이, 각 요소는 라디안(radian) 단위로 해석되어 사인 함수가 적용됩니다. 예를 들어 sin(1.3) ≈ 0.9636이 됩니다.
예제 2 – 2차원 텐서
torch.sin()은 1차원뿐만 아니라 다차원 텐서에도 동일하게 적용할 수 있습니다. 아래는 크기가 3×5인 2차원 텐서에 사인을 계산하는 예제입니다.
# 텐서 요소의 사인 값을 계산하는 파이썬 프로그램
# 필요한 라이브러리 임포트
import torch
# 크기 3x5인 2차원 텐서 생성
T = torch.Tensor([[1.3, 4.32, 4.4, 5.3, 4.5],
[0.2, 0.3, 0.5, 0.7, 0.9],
[1.1, 1.2, 2.3, 3.1, 4.9]])
print("Original Tensor T:\n", T)
# 위 텐서의 사인 값 계산
sine_T = torch.sin(T)
print("Sine value of elements of tensor T:\n", sine_T)출력 결과
Original Tensor T:
tensor([[1.3000, 4.3200, 4.4000, 5.3000, 4.5000],
[0.2000, 0.3000, 0.5000, 0.7000, 0.9000],
[1.1000, 1.2000, 2.3000, 3.1000, 4.9000]])
Sine value of elements of tensor T:
tensor([[ 0.9636, -0.9240, -0.9516, -0.8323, -0.9775],
[ 0.1987, 0.2955, 0.4794, 0.6442, 0.7833],
[ 0.8912, 0.9320, 0.7457, 0.0416, -0.9825]])정리
torch.sin() 메서드를 사용하면 별도의 반복문 없이 텐서 전체 요소에 대해 한 번에 삼각 함수 연산을 수행할 수 있습니다. 이는 GPU 연산과 결합 시 대규모 데이터를 빠르게 처리할 수 있게 해주며, 딥러닝에서 활성화 함수나 신호 처리 등 다양한 분야에 활용됩니다. 참고로 코사인은 torch.cos(), 탄젠트는 torch.tan() 메서드를 같은 방식으로 사용하면 됩니다.