Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
机器未来
Paddle
提交
7b385ff2
P
Paddle
项目概览
机器未来
/
Paddle
与 Fork 源项目一致
Fork自
PaddlePaddle / Paddle
通知
1
Star
1
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
1
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
P
Paddle
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
1
Issue
1
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
提交
7b385ff2
编写于
9月 26, 2017
作者:
Y
Yu Yang
提交者:
GitHub
9月 26, 2017
浏览文件
操作
浏览文件
下载
差异文件
Merge pull request #4407 from Canpio/fix_huber_loss_test_error
Fix error in unit test of ModifiedHuberLossOp
上级
bc30ba19
36f3d0af
变更
1
隐藏空白更改
内联
并排
Showing
1 changed file
with
18 addition
and
9 deletion
+18
-9
python/paddle/v2/framework/tests/test_modified_huber_loss_op.py
.../paddle/v2/framework/tests/test_modified_huber_loss_op.py
+18
-9
未找到文件。
python/paddle/v2/framework/tests/test_modified_huber_loss_op.py
浏览文件 @
7b385ff2
...
...
@@ -5,22 +5,31 @@ from op_test import OpTest
def
modified_huber_loss_forward
(
val
):
if
val
<
-
1
:
return
-
4
*
val
return
-
4
.
*
val
elif
val
<
1
:
return
(
1
-
val
)
*
(
1
-
val
)
return
(
1
.
-
val
)
*
(
1.
-
val
)
else
:
return
0
return
0
.
class
TestModifiedHuberLossOp
(
OpTest
):
def
setUp
(
self
):
self
.
op_type
=
'modified_huber_loss'
samples_num
=
32
self
.
inputs
=
{
'X'
:
np
.
random
.
uniform
(
-
1
,
1.
,
(
samples_num
,
1
)).
astype
(
'float32'
),
'Y'
:
np
.
random
.
choice
([
0
,
1
],
samples_num
).
reshape
((
samples_num
,
1
))
}
product_res
=
self
.
inputs
[
'X'
]
*
(
2
*
self
.
inputs
[
'Y'
]
-
1
)
x_np
=
np
.
random
.
uniform
(
-
2.
,
2.
,
(
samples_num
,
1
)).
astype
(
'float32'
)
y_np
=
np
.
random
.
choice
([
0
,
1
],
samples_num
).
reshape
(
(
samples_num
,
1
)).
astype
(
'float32'
)
product_res
=
x_np
*
(
2.
*
y_np
-
1.
)
# keep away from the junction of piecewise function
for
pos
,
val
in
np
.
ndenumerate
(
product_res
):
while
abs
(
val
-
1.
)
<
0.05
:
x_np
[
pos
]
=
np
.
random
.
uniform
(
-
2.
,
2.
)
y_np
[
pos
]
=
np
.
random
.
choice
([
0
,
1
])
product_res
[
pos
]
=
x_np
[
pos
]
*
(
2
*
y_np
[
pos
]
-
1
)
val
=
product_res
[
pos
]
self
.
inputs
=
{
'X'
:
x_np
,
'Y'
:
y_np
}
loss
=
np
.
vectorize
(
modified_huber_loss_forward
)(
product_res
)
self
.
outputs
=
{
...
...
@@ -32,7 +41,7 @@ class TestModifiedHuberLossOp(OpTest):
self
.
check_output
()
def
test_check_grad
(
self
):
self
.
check_grad
([
'X'
],
'Out'
,
max_relative_error
=
0.0
05
)
self
.
check_grad
([
'X'
],
'Out'
,
max_relative_error
=
0.0
1
)
if
__name__
==
'__main__'
:
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录