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

torch.distributions.half_normal 的源代码

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

导入 火炬
from 火炬 导入 无穷, 张量
from torch.distributions 导入 约束
from torch.distributions.normal 导入 正态分布
from torch.distributions.transformed_distribution 导入 转换分布
from torch.distributions.transforms 导入 Abs 变换


全部 = [半正态分布]


[文档] 半正态(转换分布): r```python # 假设输入文本为: input_text = """Immersive Translate""" # 翻译函数(此处仅为示例,实际翻译功能需要调用真实的翻译 API) def translate_to_simplified_chinese(text): # 这里应该调用真实的翻译 API 进行翻译 # 由于示例中不使用真实的 API,以下为模拟翻译结果 return text # 假设翻译结果与原文相同 # 输出翻译结果 translated_text = translate_to_simplified_chinese(input_text) print(translated_text) ``` 输出: ``` Immersive Translate ``` 创建一个由 `scale` 参数化的半正态分布 X ~ 正态(0, scale) Y = |X| ~ 半正态分布(scale) 示例:: >>> # xdoctest: +IGNORE_WANT("非确定性") >>> m = HalfNormal(torch.tensor([1.0])) >>> m.sample() # 半正态分布,尺度为 1 tensor([ 0.1046]) 参数: scale (float 或 Tensor): 完整正态分布的尺度 """ 约束参数 = {"缩放": 约束.正的} 支持 = 约束.非负的 has_rsample = 真实 定义 __init__(自我, 比例, 验证参数=): 基础分布 = 正态分布(0, 比例, 验证参数=错误) 超级().__init__(基础分布, Abs 变换(), 验证参数=验证参数)
[文档] def 展开(self, 批量形状, _实例=None): new = self._get_checked_instance(半正态分布, _instance) return super().expand(batch_shape, _instance=new)
@property 定义
比例(自我) 翻译 张量: 返回 自我.基础分布.缩放 @property 定义 均值(自我) 翻译 张量: 返回 自我.缩放 * 数学.平方根(2 / 数学.π) @property 定义 模式(自我) 翻译 张量: 返回 火炬.等于零的(自我.比例) @property 定义 方差(自我) 翻译 张量: 返回 自我.比例.pow(2) * (1 - 2 / 数学.π)
[文档] def log_prob(self, value): if self._validate_args: self._validate_sample(value) log_prob = self.base_dist.log_prob(value) + math.log(2) log_prob = torch.where(value >= 0, log_prob, -inf) return log_prob
[文档] def cdf(self, value): if self._validate_args: self._validate_sample(value) return 2 * self.base_dist.cdf(value) - 1
[文档] def icdf(self, prob): return self.base_dist.icdf((prob + 1) / 2)
[文档] def entropy(self): return self.base_dist.entropy() - math.log(2)

© 版权所有 PyTorch 贡献者。

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

文档

查看 PyTorch 的全面开发者文档

查看文档

教程

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

查看教程

资源

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

查看资源