본문 바로가기
함수 설명/인공지능 (Pytorch)

[PyTorch] 만땅이요! torch.ones() 1만 있는 텐서 생성

by First Adventure 2024. 7. 13.
반응형

소개

  torch.ones 함수는 주어진 크기와 데이터 타입을 가지는 모든 요소가 1인 텐서를 생성하는 PyTorch 함수입니다. 딥러닝 모델의 초기화 및 다양한 연산에서 자주 사용됩니다.

 

기본 사용법

상세 설명

  • torch.ones 함수의 기본 구문은 torch.ones(*size, out=None, dtype=None, layout=torch.strided, device=None, requires_grad=False)입니다.
    • size: 텐서의 크기를 나타내는 정수 또는 튜플.
    • out: 결과 텐서를 저장할 텐서.
    • dtype: 텐서의 데이터 타입을 지정합니다. 예: torch.float32, torch.int64.
    • layout: 텐서의 메모리 레이아웃을 지정합니다. 기본값은 torch.strided.
    • device: 텐서가 할당될 장치를 지정합니다. 예: torch.device('cpu'), torch.device('cuda').
    • requires_grad: True로 설정하면 텐서에 대한 연산 기록을 추적하여 자동 미분을 수행할 수 있습니다.

예시 설명

  • torch.ones(5)는 길이가 5인 1차원 텐서를 생성합니다.
  • torch.ones(2, 3)는 2x3 크기의 2차원 텐서를 생성합니다.
  • torch.ones(2, 2, dtype=torch.int32)는 2x2 크기의 정수 텐서를 생성합니다.
  • torch.ones(3, 3, device=torch.device('cuda'))는 CUDA 장치(GPU)에 3x3 크기의 텐서를 생성합니다.
  • torch.ones_like(existing_tensor)는 기존 텐서와 동일한 크기와 데이터 타입을 가지는 모든 요소가 1인 새로운 텐서를 생성합니다.
# 1차원 텐서 생성
import torch

tensor = torch.ones(5)
print(tensor)
# 출력: tensor([1., 1., 1., 1., 1.])

# 다차원 텐서 생성
import torch

tensor = torch.ones(2, 3)
print(tensor)
# 출력: tensor([[1., 1., 1.],
#              [1., 1., 1.]])

# 데이터 타입 지정
import torch

tensor = torch.ones(2, 2, dtype=torch.int32)
print(tensor)
# 출력: tensor([[1, 1],
#              [1, 1]], dtype=torch.int32)

# GPU 텐서 생성
import torch

tensor = torch.ones(3, 3, device=torch.device('cuda'))
print(tensor)
# 출력: tensor([[1., 1., 1.],
#              [1., 1., 1.],
#              [1., 1., 1.]], device='cuda:0')

# 기존 텐서 크기와 동일한 텐서 생성
import torch

existing_tensor = torch.tensor([[1, 2, 3], [4, 5, 6]])
tensor = torch.ones_like(existing_tensor)
print(tensor)
# 출력: tensor([[1, 1, 1],
#              [1, 1, 1]])

 

라이센스

  PyTorch의 표준 라이브러리와 내장 함수들은 BSD-style license 하에 배포됩니다. 이 라이센스는 자유 소프트웨어 라이센스로, 상업적 사용을 포함한 거의 모든 용도로 사용이 가능합니다. 라이센스와 저작권 정보는 PyTorch의 공식 GitHub 리포지토리에서 확인할 수 있습니다.

 

마무리

  torch.zeros()와 마찬가지로 쓰임새가 비슷합니다. 추가로 정규화나 스케일에도 이용할 수 있습니다. 스케일링 값을 조정하려면 torch.ones([크기입력]) * a와 같이 상수를 뒤에 곱해주면 됩니다.

 

관련 내용

  [PyTorch] 만땅이요! torch.ones() 1만 있는 텐서 생성

  [PyTorch] 전부 젊은 얘들로요. torch.zeros() 0만 있는 텐서 생성

 

반응형