Pytorch에서 랜덤 선택하기
Pytorch에서 랜덤 선택하기
torch.rand 및 torch.randn 사용:
torch.rand
는 0에서 1 사이의 균일 분포 난수를 생성합니다.torch.randn
는 평균 0, 표준 편차 1의 정규 분포 난수를 생성합니다.
import torch
# 0에서 1 사이의 균일 분포 난수 텐서 생성
rand_tensor = torch.rand(3, 4)
print(rand_tensor)
# 평균 0, 표준 편차 1의 정규 분포 난수 텐서 생성
randn_tensor = torch.randn(3, 4)
print(randn_tensor)
torch.randint 사용:
torch.randint
는 특정 범위 내에서 정수 난수를 생성합니다.
# 0에서 10 사이의 정수 난수 텐서 생성
randint_tensor = torch.randint(0, 10, (3, 4))
print(randint_tensor)
torch.multinomial 사용:
torch.multinomial
은 범주형 분포에서 난수를 생성합니다.
# 3개의 범주에서 2개의 샘플을 추출하는 텐서 생성
probs = torch.tensor([0.2, 0.5, 0.3])
multinomial_tensor = torch.multinomial(probs, 2, replacement=True)
print(multinomial_tensor)
random 모듈 사용:
- 파이썬 표준 라이브러리
random
모듈을 사용하여 난수를 생성할 수 있습니다.
import random
# 0에서 10 사이의 정수 난수 생성
random_number = random.randint(0, 10)
print(random_number)
참고:
- 텐서의 특정 차원에서 랜덤 선택을 수행하려면
torch.argmax
또는torch.min
함수와 함께 사용할 수 있습니다. - 랜덤 선택을 반복적으로 수행해야 하는 경우,
for
루프를 사용하여 반복적으로 난수를 생성할 수 있습니다. - 딥러닝 모델에서 랜덤 선택을 사용하는 경우, 모델의 학습 과정에 영향을 미칠 수 있으므로 주의해야 합니다.
예제 코드
import torch
# 0에서 1 사이의 균일 분포 난수 텐서 생성
rand_tensor = torch.rand(3, 4)
print(rand_tensor)
# 평균 0, 표준 편차 1의 정규 분포 난수 텐서 생성
randn_tensor = torch.randn(3, 4)
print(randn_tensor)
# 0에서 10 사이의 정수 난수 텐서 생성
randint_tensor = torch.randint(0, 10, (3, 4))
print(randint_tensor)
# 3개의 범주에서 2개의 샘플을 추출하는 텐서 생성
probs = torch.tensor([0.2, 0.5, 0.3])
multinomial_tensor = torch.multinomial(probs, 2, replacement=True)
print(multinomial_tensor)
import random
# 0에서 10 사이의 정수 난수 생성
random_number = random.randint(0, 10)
print(random_number)
텐서의 특정 차원에서 랜덤 선택:
import torch
# 0에서 9 사이의 10개의 숫자를 가진 텐서 생성
numbers = torch.arange(0, 10)
# 텐서에서 3개의 랜덤 인덱스 선택
random_indices = torch.randint(0, 10, (3,))
# 선택된 인덱스에 해당하는 숫자 추출
random_numbers = numbers[random_indices]
print(random_numbers)
for 루프를 사용하여 반복적으로 난수 생성:
import random
# 0에서 10 사이의 5개의 난수를 저장할 리스트 생성
random_numbers = []
# 5번 반복하여 난수 생성
for i in range(5):
random_number = random.randint(0, 10)
random_numbers.append(random_number)
print(random_numbers)
- 위 코드는 예시이며, 필요에 따라 수정하여 사용할 수 있습니다.
Pytorch에서 랜덤 선택을 수행하는 대체 방법
torch.bernoulli 사용:
torch.bernoulli
는 성공 확률이 주어진 베르누이 분포에서 난수를 생성합니다.
import torch
# 성공 확률 0.5인 베르누이 분포 난수 텐서 생성
bernoulli_tensor = torch.bernoulli(torch.tensor(0.5, dtype=torch.float))
print(bernoulli_tensor)
torch.poisson 사용:
torch.poisson
는 평균 도달 횟수가 주어진 포아송 분포에서 난수를 생성합니다.
import torch
# 평균 도달 횟수 5인 포아송 분포 난수 텐서 생성
poisson_tensor = torch.poisson(torch.tensor(5.0))
print(poisson_tensor)
torch.gamma 사용:
torch.gamma
는 형상 매개변수와 척도 매개변수가 주어진 감마 분포에서 난수를 생성합니다.
import torch
# 형상 매개변수 2, 척도 매개변수 1인 감마 분포 난수 텐서 생성
gamma_tensor = torch.gamma(torch.tensor(2.0), torch.tensor(1.0))
print(gamma_tensor)
torch.distributions 모듈 사용:
- Pytorch는 다양한 확률 분포를 위한 샘플링 함수를 제공하는
torch.distributions
모듈을 제공합니다.
import torch
from torch.distributions import uniform
# 0에서 1 사이의 균일 분포 난수 텐서 생성
uniform_tensor = uniform.Uniform(low=0.0, high=1.0).sample((3, 4))
print(uniform_tensor)
python python-3.x numpy