• 文档 >
  • 模块代码 >
  • torch >
  • torch.distributions.cauchy
快捷键

torch.distributions.cauchy 的源代码

# mypy: 允许未类型化定义
导入 数学

导入 火炬
来自 火炬 导入 无穷, 纳尼, 张量
来自 torch.distributions 导入 约束
来自 torch.distributions.distribution 导入 分布
来自 torch.distributions.utils 导入 广播全部
来自 torch 的类型 导入 _数字, _大小


全部 = [高斯]


[文档] 柯西(分发): r"" 来自高斯(洛伦兹)分布的样本。比率的分布为 独立同分布的随机变量,其均值为 `0` 的服从 柯西分布。 示例:: >>> # xdoctest: +IGNORE_WANT("非确定性") >>> m = Cauchy(torch.tensor([0.0]), torch.tensor([1.0])) >>> m.sample() # 从均值为 0 和尺度为 1 的柯西分布中抽样 tensor([ 2.3214]) 参数: loc (浮点数或张量):分布的均值或中位数。 scale (浮点数或张量):半最大值半宽度。 "沉浸式翻译" 约束参数 = {"loc": 约束.真实, "缩放": 约束.正面} 支持 = 约束.真实 has_rsample = 真实 def __init__(self, 位置, 比例, validate_args=): self.位置, self.缩放 = 广播全部(位置, 比例) 如果 isinstance(位置, _数字) isinstance(比例, _数字): batch_shape = torch.尺寸() 否则: batch_shape = self.位置.尺寸() 超级().__init__(批量形状, validate_args=validate_args)
[文档] def expand(self, batch_shape, _instance=None): new = self._get_checked_instance(Cauchy, _instance) batch_shape = torch.Size(batch_shape) new.loc = self.loc.expand(batch_shape) new.scale = self.scale.expand(batch_shape) super(Cauchy, new).__init__(batch_shape, validate_args=False) new._validate_args = self._validate_args return new
@property def 均值
(self) -> 张量: 返回 torch.full( self._extended_shape(), 纳尼, 数据类型=self.位置.数据类型, 设备=self.位置.设备 ) @property def 模式(self) -> 张量: 返回 self.定位 @property def 方差(self) -> 张量: 返回 torch.full( self._扩展形状(), 无穷, 数据类型=self.位置.数据类型, 设备=self.位置.设备 )
[文档] def rsample(self, sample_shape: _size = torch.Size()) -> Tensor: 形状 = self._extended_shape(sample_shape) eps = self.loc.new(shape).cauchy_() return self.loc + eps * self.scale
[文档] def log_prob(self, value): if self._validate_args: self._validate_sample(value) return ( -math.log(math.pi) - self.scale.log() (((值 - self.loc) / self.scale) ** 2).log1p() )
[文档] def cdf(self, 值): if self._validate_args: self._validate_sample(value) return torch.atan((value - self.loc) / self.scale) / math.pi + 0.5
[文档] def icdf(self, value): return torch.tan(math.pi * (value - 0.5)) * self.scale + self.loc
[文档] def 熵(self): return math.log(4 * math.pi) + self.scale.log()

© 版权所有 PyTorch 贡献者。

使用 Sphinx 构建,并使用 Read the Docs 提供的主题。

文档

查看 PyTorch 的全面开发者文档

查看文档

教程

深入了解初学者和高级开发者的教程

查看教程

资源

查找开发资源,获取您的疑问解答

查看资源