• 作者:老汪软件技巧
  • 发表时间:2024-10-04 00:01
  • 浏览量:

torch.normal()用法

torch.normal()函数,用于生成符合正态分布(高斯分布)的随机数。在 PyTorch 中,这个函数通常用于生成 Tensor。该函数共有四个方法:

@overload
def normal(mean: Tensor, std: Tensor, *, generator: Optional[Generator] = None, out: Optional[Tensor] = None) -> Tensor: ...
@overload
def normal(mean: Tensor, std: _float = 1, *, generator: Optional[Generator] = None, out: Optional[Tensor] = None) -> Tensor: ...
@overload
def normal(mean: _float, std: Tensor, *, generator: Optional[Generator] = None, out: Optional[Tensor] = None) -> Tensor: ...
@overload
def normal(mean: _float, std: _float, size: Sequence[Union[_int, SymInt]], *, 
           generator: Optional[Generator] = None, out: Optional[Tensor] = None, 
           dtype: Optional[_dtype] = None, layout: Optional[_layout] = None, 
           device: Optional[Optional[DeviceLikeType]] = None, 
           pin_memory: Optional[_bool] = False, 
           requires_grad: Optional[_bool] = False) -> Tensor: ...

_pythonnumpy库_spring标签库详解

参数解析返回值

返回一个张量,其形状与 mean 和 std 相同,其中的元素服从均值为 mean,标准差为 std 的正态分布。使用示例

import torch
random_value = torch.normal(mean=0.0, std=1.0, size=(2, 2))
print(random_value)
# 生成一个服从均值0和标准差1的单个随机数
random_value = torch.normal(mean=0, std=1, size=(1,))
print(random_value)
# 生成一个服从均值0和标准差1的张量
mean_tensor = torch.zeros(3, 3)  # 均值张量
std_tensor = torch.ones(3, 3)  # 标准差张量
random_tensor = torch.normal(mean_tensor, std_tensor)
print(random_tensor)
# 使用指定生成器生成随机数
generator = torch.Generator().manual_seed(42)
random_value_with_generator = torch.normal(mean=0.0, std=1.0, size=(2, 2), generator=generator)
print(random_value_with_generator)
# 输出到指定Tensor
out_tensor = torch.empty(3, 3)
torch.normal(mean_tensor, std_tensor, out=out_tensor)
print(out_tensor)

以上是 torch.normal() 函数的基本用法。可以根据具体需求调整 mean 和 std 的值来生成不同形状、不同均值和标准差的正态分布随机数。


上一条查看详情 +奇怪的需求解决方案(三)
下一条 查看详情 +没有了