torch.distributions.log_normal 的源代码
# mypy: 允许未类型化定义
from 火炬
导入
张量
from torch.distributions 导入
约束
from torch.distributions.normal 导入
正态分布
from torch.distributions.transformed_distribution 导入
转换分布
from torch.distributions.transforms 导入 ExpTransform
全部 = [
对数正态分布]
[文档]
类
对数正态分布(
转换分布):
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
```
创建一个由参数化的对数正态分布
attr:`loc` 和 :attr:`scale` 其中::
X ~ 正态分布(loc, scale)
Y = exp(X) ~ 对数正态分布(loc, scale)
示例::
>>> # xdoctest: +IGNORE_WANT("非确定性")
>>> m = LogNormal(torch.tensor([0.0]), torch.tensor([1.0]))
>>> m.sample() # 对数正态分布,均值为 0,标准差为 1
tensor([ 0.1046])
参数:
loc (浮点数或张量):分布对数的均值
scale (浮点数或张量):分布对数的标准差
"""
约束参数 = {"loc":
约束.
真实,
"缩放":
约束.
正的}
支持 =
约束.
正向
has_rsample = 真实
定义 __init__(self,
位置,
比例,
验证参数=
无):
基础分布 =
正态分布(
位置,
比例,
验证参数=
验证参数)
超级().__init__(base_dist,
指数转换(),
验证参数=
验证参数)
[文档] def expand(self, batch_shape, _instance=None):
new = self._get_checked_instance(LogNormal, _instance)
return super().expand(batch_shape, _instance=new)
@property
定义
位置(self)
翻译
张量:
return self.base_dist.定位
@property
定义
比例(self)
翻译
张量:
返回
自我.
基础分布.
缩放
@property
定义
均值(
自我)
翻译
张量:
返回 (
自我.
定位 +
自我.
比例.pow(2) / 2).exp()
@property
定义
模式(
自我)
翻译
张量:
返回 (
自我.
定位 -
自我.
比例.
平方()).exp()
@property
定义
方差(self)
翻译
张量:
scale_sq = self.比例.pow(2)
return scale_sq.expm1() * (2 * self.定位 + scale_sq).exp()
[文档] def 熵(self):
返回 self.base_dist.熵() + self.loc