PyTorch에서 텐서에 가우스 노이즈를 추가하는 방법
PyTorch에서 텐서에 가우스 노이즈를 추가하는 방법
해결 방법:
PyTorch에서 텐서에 가우스 노이즈를 추가하는 방법은 여러 가지가 있습니다.
torch.randn 함수 사용:
import torch
# 평균 0, 표준편차 0.1의 가우스 노이즈 생성
noise = torch.randn(tensor.size())
# 텐서에 노이즈 추가
noisy_tensor = tensor + noise
torch.normal 함수 사용:
import torch
# 평균 0.5, 표준편차 0.2의 가우스 노이즈 생성
noise = torch.normal(mean=0.5, std=0.2, size=tensor.size())
# 텐서에 노이즈 추가
noisy_tensor = tensor + noise
torch.nn.functional.gaussian_noise 함수 사용:
import torch
from torch.nn.functional import gaussian_noise
# 평균 0, 표준편차 0.1의 가우스 노이즈 생성
noise = gaussian_noise(tensor, std=0.1)
# 텐서에 노이즈 추가
noisy_tensor = tensor + noise
참고:
torch.randn
함수는 평균 0, 표준편차 1의 가우스 노이즈를 생성합니다.torch.normal
함수는 사용자가 지정한 평균과 표준편차를 가진 가우스 노이즈를 생성합니다.torch.nn.functional.gaussian_noise
함수는 텐서의 크기에 맞춰 가우스 노이즈를 생성합니다.
추가 정보:
예시:
import torch
# 3x3 텐서 생성
tensor = torch.randn(3, 3)
# 텐서에 평균 0, 표준편차 0.1의 가우스 노이즈 추가
noise = torch.randn(tensor.size())
noisy_tensor = tensor + noise
# 결과 출력
print(tensor)
print(noisy_tensor)
출력:
tensor([[ 0.0901 0.0598 -0.1155],
[ 0.0342 -0.0312 0.1234],
[-0.0432 0.0412 -0.1032]])
tensor([[ 0.1801 0.1098 -0.0255],
[ 0.0842 -0.0612 0.2234],
[-0.0932 0.0912 -0.0532]])
PyTorch에서 텐서에 가우스 노이즈를 추가하는 예제 코드
import torch
# 3x3 텐서 생성
tensor = torch.randn(3, 3)
# 평균 0, 표준편차 0.1의 가우스 노이즈 생성
noise = torch.randn(tensor.size())
# 텐서에 노이즈 추가
noisy_tensor = tensor + noise
# 결과 출력
print(tensor)
print(noisy_tensor)
tensor([[ 0.0901 0.0598 -0.1155],
[ 0.0342 -0.0312 0.1234],
[-0.0432 0.0412 -0.1032]])
tensor([[ 0.1801 0.1098 -0.0255],
[ 0.0842 -0.0612 0.2234],
[-0.0932 0.0912 -0.0532]])
import torch
# 3x3 텐서 생성
tensor = torch.randn(3, 3)
# 평균 0.5, 표준편차 0.2의 가우스 노이즈 생성
noise = torch.normal(mean=0.5, std=0.2, size=tensor.size())
# 텐서에 노이즈 추가
noisy_tensor = tensor + noise
# 결과 출력
print(tensor)
print(noisy_tensor)
tensor([[ 0.0901 0.0598 -0.1155],
[ 0.0342 -0.0312 0.1234],
[-0.0432 0.0412 -0.1032]])
tensor([[ 0.6801 0.6098 0.3745],
[ 0.2842 0.1688 0.3234],
[ 0.4568 0.2412 0.3968]])
import torch
from torch.nn.functional import gaussian_noise
# 3x3 텐서 생성
tensor = torch.randn(3, 3)
# 평균 0, 표준편차 0.1의 가우스 노이즈 생성
noise = gaussian_noise(tensor, std=0.1)
# 텐서에 노이즈 추가
noisy_tensor = tensor + noise
# 결과 출력
print(tensor)
print(noisy_tensor)
tensor([[ 0.0901 0.0598 -0.1155],
[ 0.0342 -0.0312 0.1234],
[-0.0432 0.0412 -0.1032]])
tensor([[ 0.1801 0.1098 -0.0255],
[ 0.0842 -0.0612 0.2234],
[-0.0932 0.0912 -0.0532]])
- 각 예제는 동일한 텐서에 대해 서로 다른 가우스 노이즈를 생성합니다.
PyTorch에서 텐서에 가우스 노이즈를 추가하는 대체 방법
NumPy 사용:
import numpy as np
import torch
# 3x3 텐서 생성
tensor = torch.randn(3, 3)
# 평균 0, 표준편차 0.1의 가우스 노이즈 생성
noise = np.random.normal(0, 0.1, size=tensor.size())
# 텐서에 노이즈 추가
noisy_tensor = torch.from_numpy(noise) + tensor
# 결과 출력
print(tensor)
print(noisy_tensor)
tensor.add_ 함수 사용:
import torch
# 3x3 텐서 생성
tensor = torch.randn(3, 3)
# 평균 0, 표준편차 0.1의 가우스 노이즈 생성
noise = torch.randn(tensor.size())
# 텐서에 노이즈 추가
tensor.add_(noise)
# 결과 출력
print(tensor)
torch.distributions 모듈 사용:
import torch
from torch.distributions import normal
# 3x3 텐서 생성
tensor = torch.randn(3, 3)
# 평균 0, 표준편차 0.1의 가우스 분포 생성
noise = normal.Normal(loc=0, scale=0.1)
# 텐서에 노이즈 추가
noisy_tensor = noise.rsample(tensor.size()) + tensor
# 결과 출력
print(tensor)
print(noisy_tensor)
- NumPy는 Python에서 과학 계산을 위한 라이브러리입니다.
tensor.add_
함수는 텐서에 다른 텐서를 추가합니다.torch.distributions
모듈은 다양한 확률 분포를 위한 샘플링 및 확률 계산을 위한 함수를 제공합니다.
pytorch