Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
BaiXuePrincess
Paddle
提交
d5cfa6fc
P
Paddle
项目概览
BaiXuePrincess
/
Paddle
与 Fork 源项目一致
Fork自
PaddlePaddle / Paddle
通知
1
Star
1
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
P
Paddle
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
提交
d5cfa6fc
编写于
2月 19, 2017
作者:
Y
Yu Yang
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
Stash
上级
6089b7c6
变更
2
隐藏空白更改
内联
并排
Showing
2 changed file
with
55 addition
and
2 deletion
+55
-2
paddle/gserver/evaluators/Evaluator.cpp
paddle/gserver/evaluators/Evaluator.cpp
+17
-2
paddle/gserver/evaluators/Evaluator.h
paddle/gserver/evaluators/Evaluator.h
+38
-0
未找到文件。
paddle/gserver/evaluators/Evaluator.cpp
浏览文件 @
d5cfa6fc
...
...
@@ -449,6 +449,21 @@ double AucEvaluator::calcAuc() const {
}
}
real
AucEvaluator
::
getValueImpl
()
const
{
return
calcAuc
();
}
std
::
string
AucEvaluator
::
getTypeImpl
()
const
{
if
(
colIdx_
==
-
1
)
{
return
"last-column-auc"
;
}
else
{
return
"auc"
;
}
}
static
InitFunction
__reg_type_auc__
([]()
{
Evaluator
::
registrar_
.
registerClass
(
"last-column-auc"
,
[]
{
return
new
AucEvaluator
(
-
1
);
});
});
// class RankAucEvaluator
REGISTER_EVALUATOR
(
rankauc
,
RankAucEvaluator
);
...
...
@@ -873,8 +888,6 @@ Evaluator* Evaluator::create(const EvaluatorConfig& config) {
evaluator
=
new
SumEvaluator
();
}
else
if
(
config
.
type
()
==
"last-column-sum"
)
{
evaluator
=
new
ColumnSumEvaluator
(
-
1
);
}
else
if
(
config
.
type
()
==
"last-column-auc"
)
{
evaluator
=
new
AucEvaluator
(
-
1
);
}
else
{
evaluator
=
registrar_
.
createByType
(
config
.
type
());
}
...
...
@@ -1253,4 +1266,6 @@ public:
};
REGISTER_EVALUATOR
(
classification_error_printer
,
ClassificationErrorPrinter
);
std
::
string
DummyEvaluator
::
getTypeImpl
()
const
{
return
"dummy"
;
}
}
// namespace paddle
paddle/gserver/evaluators/Evaluator.h
浏览文件 @
d5cfa6fc
...
...
@@ -19,6 +19,7 @@ limitations under the License. */
#include "paddle/parameter/Argument.h"
#include "paddle/pserver/ParameterClient2.h"
#include "paddle/utils/ClassRegistrar.h"
#include "paddle/utils/Error.h"
namespace
paddle
{
...
...
@@ -117,6 +118,34 @@ public:
static
ClassRegistrar
<
Evaluator
>
registrar_
;
virtual
void
getNames
(
std
::
vector
<
std
::
string
>*
names
)
{
names
->
clear
();
names
->
push_back
(
config_
.
name
());
}
virtual
real
getValue
(
const
std
::
string
&
name
,
paddle
::
Error
*
err
=
nullptr
)
const
{
if
(
name
!=
config_
.
name
()
&&
err
!=
nullptr
)
{
*
err
=
paddle
::
Error
(
"no such name of evaluator %s"
,
name
.
c_str
());
return
.0
f
;
}
return
this
->
getValueImpl
();
}
virtual
std
::
string
getType
(
const
std
::
string
&
name
,
paddle
::
Error
*
err
=
nullptr
)
const
{
if
(
name
!=
config_
.
name
()
&&
err
!=
nullptr
)
{
*
err
=
paddle
::
Error
(
"no such name of evaluator %s"
,
name
.
c_str
());
return
std
::
string
();
}
return
this
->
getTypeImpl
();
}
protected:
virtual
real
getValueImpl
()
const
{
return
.0
f
;
}
virtual
std
::
string
getTypeImpl
()
const
{
return
"base"
;
}
protected:
EvaluatorConfig
config_
;
double
numSamples_
;
...
...
@@ -135,6 +164,10 @@ public:
}
virtual
void
finish
()
{}
virtual
void
printStats
(
std
::
ostream
&
)
const
{}
// Evaluator interface
protected:
std
::
string
getTypeImpl
()
const
;
};
/**
* @brief evaluate AUC using colIdx-th column as prediction.
...
...
@@ -191,6 +224,11 @@ private:
}
double
calcAuc
()
const
;
// Evaluator interface
protected:
real
getValueImpl
()
const
;
std
::
string
getTypeImpl
()
const
;
};
/**
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录