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

torch.distributions.gumbel 的源代码

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

导入 火炬
from 火炬 导入 张量
from torch.distributions 导入 约束
from torch.distributions.transformed_distribution 导入 转换分布
from torch.distributions.transforms 导入 变换矩阵, ExpTransform
from torch.distributions.uniform 导入 Uniform
from torch.distributions.utils 导入 广播全部, 欧拉常数
from torch.types 导入 数值


全部 = ["Gumbel"]


[文档] Gumbel(转换分布): 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 ``` 来自 Gumbel 分布的样本。 示例: >>> # xdoctest: +IGNORE_WANT("非确定性") >>> m = Gumbel(torch.tensor([1.0]), torch.tensor([2.0])) >>> m.sample() # 从 Gumbel 分布中采样,位置参数为 1,尺度参数为 2 tensor([ 1.0124]) 参数: loc (float 或 Tensor): 分布的位置参数 scale (float 或 Tensor): 分布的尺度参数 """ 约束参数 = {"loc": 约束.真实, "缩放": 约束.正的} 支持 = 约束.真实 定义 __init__(自我, 位置, 比例, 验证参数=): 自我.位置, 自我.缩放 = 广播全部(位置, 比例) 信息 = 火炬.finfo(自我.位置.数据类型) 如果 isinstance(位置, ) isinstance(比例, ): 基础距离 = 均匀分布(finfo.微小。, 1 - finfo.eps, 验证参数=验证参数) else: 基础距离 = 均匀分布( 火炬.完全一样(自我.位置, finfo.微小。), 火炬.完全一样(自我.位置, 1 - finfo.eps), 验证参数=验证参数, ) 转换 = [ 指数转换().涉及, 变换矩阵(位置=0, 比例=-火炬.喜欢的(自我.比例)), 指数转换().涉及, 变换矩阵(位置=位置, 比例=-自我.比例), ] 超级().__init__(base_dist, 变换, 验证参数=验证参数)
[文档] def expand(self, batch_shape, _instance=None): new = self._get_checked_instance(Gumbel, _instance) new.loc = self.loc.expand(batch_shape) new.scale = self.scale.expand(batch_shape) return super().expand(batch_shape, _instance=new)
明确定义 Gumbel 的对数概率函数,以解决精度问题
[文档] def log_prob(self, value): if self._validate_args: self._validate_sample(value) y = (self.loc - value) / self.scale return (y - y.exp()) - self.scale.log()
@property 定义
均值(自我) 翻译 张量: 返回 自我.定位 + 自我.缩放 * 欧拉常数 @property 定义 模式(自我) 翻译 张量: 返回 自我.定位 @property 定义 标准差(自我) 翻译 张量: 返回 (数学.圆周率 / 数学.平方根(6)) * 自我.缩放 @property 定义 方差(自我) 翻译 张量: 返回 自我.标准差.pow(2)
[文档] def 熵(self): return self.scale.log() + (1 + 欧拉常数)

© 版权所有 PyTorch 贡献者。

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

文档

查看 PyTorch 的全面开发者文档

查看文档

教程

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

查看教程

资源

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

查看资源