Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
pingzhuyan
mindspore
提交
9083e9dc
M
mindspore
项目概览
pingzhuyan
/
mindspore
与 Fork 源项目一致
Fork自
MindSpore / mindspore
通知
1
Star
1
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
M
mindspore
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
提交
9083e9dc
编写于
8月 31, 2020
作者:
X
Xun Deng
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
fixed prob, survival function of exponential distribution
上级
39e27911
变更
1
隐藏空白更改
内联
并排
Showing
1 changed file
with
27 addition
and
5 deletion
+27
-5
mindspore/nn/probability/distribution/exponential.py
mindspore/nn/probability/distribution/exponential.py
+27
-5
未找到文件。
mindspore/nn/probability/distribution/exponential.py
浏览文件 @
9083e9dc
...
...
@@ -198,9 +198,9 @@ class Exponential(Distribution):
return
self
.
_entropy
(
rate
)
+
self
.
_kl_loss
(
dist
,
rate_b
,
rate
)
def
_prob
(
self
,
value
,
rate
=
None
):
def
_
log_
prob
(
self
,
value
,
rate
=
None
):
r
"""
pdf of Exponential distribution.
log_
pdf of Exponential distribution.
Args:
Args:
...
...
@@ -211,15 +211,16 @@ class Exponential(Distribution):
Value should be greater or equal to zero.
.. math::
pdf(x) = rate * \exp(-1 * \lambda * x)
if x >= 0 else 0
log_pdf(x) = \log(rate) - rate * x
if x >= 0 else 0
"""
value
=
self
.
_check_value
(
value
,
"value"
)
value
=
self
.
cast
(
value
,
self
.
dtype
)
rate
=
self
.
_check_param
(
rate
)
prob
=
self
.
exp
(
self
.
log
(
rate
)
-
rate
*
value
)
prob
=
self
.
log
(
rate
)
-
rate
*
value
zeros
=
self
.
fill
(
self
.
dtypeop
(
prob
),
self
.
shape
(
prob
),
0.0
)
neginf
=
self
.
fill
(
self
.
dtypeop
(
prob
),
self
.
shape
(
prob
),
-
np
.
inf
)
comp
=
self
.
less
(
value
,
zeros
)
return
self
.
select
(
comp
,
zeros
,
prob
)
return
self
.
select
(
comp
,
neginf
,
prob
)
def
_cdf
(
self
,
value
,
rate
=
None
):
r
"""
...
...
@@ -243,6 +244,27 @@ class Exponential(Distribution):
comp
=
self
.
less
(
value
,
zeros
)
return
self
.
select
(
comp
,
zeros
,
cdf
)
def
_log_survival
(
self
,
value
,
rate
=
None
):
r
"""
log survival_function of Exponential distribution.
Args:
value (Tensor): value to be evaluated.
rate (Tensor): rate of the distribution. Default: self.rate.
Note:
Value should be greater or equal to zero.
.. math::
log_survival_function(x) = -1 * \lambda * x if x >= 0 else 0
"""
value
=
self
.
_check_value
(
value
,
'value'
)
value
=
self
.
cast
(
value
,
self
.
dtype
)
rate
=
self
.
_check_param
(
rate
)
sf
=
-
1.
*
rate
*
value
zeros
=
self
.
fill
(
self
.
dtypeop
(
sf
),
self
.
shape
(
sf
),
0.0
)
comp
=
self
.
less
(
value
,
zeros
)
return
self
.
select
(
comp
,
zeros
,
sf
)
def
_kl_loss
(
self
,
dist
,
rate_b
,
rate
=
None
):
"""
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录