반응형
소개
torch.randint 함수는 PyTorch에서 주어진 범위 내의 임의의 정수들로 채워진 텐서를 생성하는 함수입니다. 이 함수는 신경망의 가중치 초기화, 데이터 증강, 무작위 샘플링 등의 다양한 머신러닝 작업에서 유용하게 사용됩니다.
기본 사용법
상세 설명
- torch.randint 함수의 기본 구문은 torch.randint(low, high, size, *, generator=None, out=None, dtype=torch.int64, layout=torch.strided, device=None, requires_grad=False)입니다.
- low: 생성할 정수의 최소 값 (포함).
- high: 생성할 정수의 최대 값 (제외).
- size: 생성할 텐서의 크기를 나타내는 튜플.
- generator: 랜덤 수 생성기에 사용할 생성기 객체.
- out: 결과 텐서를 저장할 텐서.
- dtype: 텐서의 데이터 타입을 지정합니다. 기본값은 torch.int64.
- layout: 텐서의 메모리 레이아웃을 지정합니다. 기본값은 torch.strided.
- device: 텐서가 할당될 장치를 지정합니다. 예: torch.device('cpu'), torch.device('cuda').
- requires_grad: True로 설정하면 텐서에 대한 연산 기록을 추적하여 자동 미분을 수행할 수 있습니다.
예시 설명
- torch.randint(0, 10, (5,))는 0부터 9까지의 랜덤한 정수를 가지는 길이 5의 1차원 텐서를 생성합니다.
- torch.randint(0, 10, (2, 3))는 0부터 9까지의 랜덤한 정수를 가지는 2x3 크기의 2차원 텐서를 생성합니다.
- torch.randint(0, 100, (2, 2), dtype=torch.int64)는 0부터 99까지의 랜덤한 정수를 가지는 2x2 크기의 int64 텐서를 생성합니다.
- torch.randint(0, 5, (3, 3), device=torch.device('cuda'))는 CUDA 장치(GPU)에 0부터 4까지의 랜덤한 정수를 가지는 3x3 크기의 텐서를 생성합니다.
- torch.randint_like(existing_tensor, 0, 10)는 기존 텐서와 동일한 크기와 데이터 타입을 가지며, 0부터 9까지의 랜덤한 정수를 가지는 새로운 텐서를 생성합니다.
# 기본
import torch
tensor = torch.randint(0, 10, (5,))
print(tensor)
# 출력: tensor([3, 7, 1, 9, 5]) # 예시 값
# 다양한 크기와 데이터 타입
import torch
# 2차원 텐서 생성
tensor_2d = torch.randint(0, 10, (2, 3))
print(tensor_2d)
# 출력: tensor([[6, 2, 9],
# [4, 1, 3]]) # 예시 값
# 데이터 타입 지정
tensor_int64 = torch.randint(0, 100, (2, 2), dtype=torch.int64)
print(tensor_int64)
# 출력: tensor([[42, 77],
# [89, 15]], dtype=torch.int64) # 예시 값
# GPU에서 텐서 생성
tensor_gpu = torch.randint(0, 5, (3, 3), device=torch.device('cuda'))
print(tensor_gpu)
# 출력: tensor([[1, 4, 3],
# [0, 2, 1],
# [3, 0, 4]], device='cuda:0') # 예시 값
# 기존 텐서의 크기와 일치하는 텐서 생성
existing_tensor = torch.tensor([[1, 2, 3], [4, 5, 6]])
tensor_like = torch.randint_like(existing_tensor, 0, 10)
print(tensor_like)
# 출력: tensor([[7, 1, 8],
# [2, 9, 4]]) # 예시 값
라이센스
PyTorch의 표준 라이브러리와 내장 함수들은 BSD-style license 하에 배포됩니다. 이 라이센스는 자유 소프트웨어 라이센스로, 상업적 사용을 포함한 거의 모든 용도로 사용이 가능합니다. 라이센스와 저작권 정보는 PyTorch의 공식 GitHub 리포지토리에서 확인할 수 있습니다.
관련 내용
[PyTorch] 랜덤하게 0과 1 사이에서 놀아보자, torch.rand() 사용법
[PyTorch] 랜덤 정수 생성의 비밀, torch.randint() 함수 활용법
[PyTorch] 정규분포 랜덤 값의 마법, torch.randn() 함수 활용법
반응형
'함수 설명 > 인공지능 (Pytorch)' 카테고리의 다른 글
[PyTorch] 텐서 이어 붙이기: torch.cat() 함수 활용법 (0) | 2024.07.19 |
---|---|
[PyTorch] 단위 행렬 만들기: torch.eye() 함수 활용법 (0) | 2024.07.19 |
[PyTorch] 정규분포 랜덤의 마법: torch.randn() 함수 활용법 (0) | 2024.07.17 |
[PyTorch] 랜덤하게 0과 1 사이에서 놀아보자: torch.rand() 사용법 (0) | 2024.07.17 |
[PyTorch] 정수 시퀀스 생성 전문가 torch.arange() (0) | 2024.07.15 |