Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
Crayon鑫
Paddle
提交
d39777fe
P
Paddle
项目概览
Crayon鑫
/
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看板
未验证
提交
d39777fe
编写于
10月 18, 2019
作者:
L
liu zhengxi
提交者:
GitHub
10月 18, 2019
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
alter the capi of PD_PredictorRun to provide proper function, test=develop (#20697)
modify the way to pass parameter out_size in function.
上级
4eeda9d6
变更
3
隐藏空白更改
内联
并排
Showing
3 changed file
with
15 addition
and
15 deletion
+15
-15
paddle/fluid/inference/capi/c_api.h
paddle/fluid/inference/capi/c_api.h
+2
-2
paddle/fluid/inference/capi/pd_predictor.cc
paddle/fluid/inference/capi/pd_predictor.cc
+4
-3
paddle/fluid/inference/tests/api/analyzer_capi_pd_tensor_tester.cc
...uid/inference/tests/api/analyzer_capi_pd_tensor_tester.cc
+9
-10
未找到文件。
paddle/fluid/inference/capi/c_api.h
浏览文件 @
d39777fe
...
@@ -99,8 +99,8 @@ PADDLE_CAPI_EXPORT extern int* PD_GetPaddleTensorShape(const PD_Tensor* tensor,
...
@@ -99,8 +99,8 @@ PADDLE_CAPI_EXPORT extern int* PD_GetPaddleTensorShape(const PD_Tensor* tensor,
// AnalysisPredictor
// AnalysisPredictor
PADDLE_CAPI_EXPORT
extern
bool
PD_PredictorRun
(
const
PD_AnalysisConfig
*
config
,
PADDLE_CAPI_EXPORT
extern
bool
PD_PredictorRun
(
const
PD_AnalysisConfig
*
config
,
PD_Tensor
*
inputs
,
int
in_size
,
PD_Tensor
*
inputs
,
int
in_size
,
PD_Tensor
*
output_data
,
PD_Tensor
*
*
output_data
,
int
*
*
out_size
,
int
batch_size
);
int
*
out_size
,
int
batch_size
);
PADDLE_CAPI_EXPORT
extern
bool
PD_PredictorZeroCopyRun
(
PADDLE_CAPI_EXPORT
extern
bool
PD_PredictorZeroCopyRun
(
const
PD_AnalysisConfig
*
config
,
PD_ZeroCopyData
*
inputs
,
int
in_size
,
const
PD_AnalysisConfig
*
config
,
PD_ZeroCopyData
*
inputs
,
int
in_size
,
...
...
paddle/fluid/inference/capi/pd_predictor.cc
浏览文件 @
d39777fe
...
@@ -26,7 +26,7 @@ using paddle::ConvertToACPrecision;
...
@@ -26,7 +26,7 @@ using paddle::ConvertToACPrecision;
extern
"C"
{
extern
"C"
{
bool
PD_PredictorRun
(
const
PD_AnalysisConfig
*
config
,
PD_Tensor
*
inputs
,
bool
PD_PredictorRun
(
const
PD_AnalysisConfig
*
config
,
PD_Tensor
*
inputs
,
int
in_size
,
PD_Tensor
*
output_data
,
int
*
*
out_size
,
int
in_size
,
PD_Tensor
*
*
output_data
,
int
*
out_size
,
int
batch_size
)
{
int
batch_size
)
{
PADDLE_ENFORCE_NOT_NULL
(
config
);
PADDLE_ENFORCE_NOT_NULL
(
config
);
static
std
::
map
<
std
::
string
,
std
::
unique_ptr
<
paddle
::
PaddlePredictor
>>
static
std
::
map
<
std
::
string
,
std
::
unique_ptr
<
paddle
::
PaddlePredictor
>>
...
@@ -43,10 +43,11 @@ bool PD_PredictorRun(const PD_AnalysisConfig* config, PD_Tensor* inputs,
...
@@ -43,10 +43,11 @@ bool PD_PredictorRun(const PD_AnalysisConfig* config, PD_Tensor* inputs,
std
::
vector
<
paddle
::
PaddleTensor
>
out
;
std
::
vector
<
paddle
::
PaddleTensor
>
out
;
if
(
predictor
->
Run
(
in
,
&
out
,
batch_size
))
{
if
(
predictor
->
Run
(
in
,
&
out
,
batch_size
))
{
int
osize
=
out
.
size
();
int
osize
=
out
.
size
();
*
output_data
=
new
PD_Tensor
[
osize
];
for
(
int
i
=
0
;
i
<
osize
;
++
i
)
{
for
(
int
i
=
0
;
i
<
osize
;
++
i
)
{
output_data
[
i
]
.
tensor
=
out
[
i
];
output_data
[
i
]
->
tensor
=
out
[
i
];
}
}
*
out_size
=
&
osize
;
*
out_size
=
osize
;
return
true
;
return
true
;
}
}
return
false
;
return
false
;
...
...
paddle/fluid/inference/tests/api/analyzer_capi_pd_tensor_tester.cc
浏览文件 @
d39777fe
...
@@ -21,6 +21,7 @@ limitations under the License. */
...
@@ -21,6 +21,7 @@ limitations under the License. */
#include <string>
#include <string>
#include <vector>
#include <vector>
#include "paddle/fluid/inference/capi/c_api.h"
#include "paddle/fluid/inference/capi/c_api.h"
#include "paddle/fluid/inference/capi/c_api_internal.h"
#include "paddle/fluid/inference/tests/api/tester_helper.h"
#include "paddle/fluid/inference/tests/api/tester_helper.h"
namespace
paddle
{
namespace
paddle
{
...
@@ -56,16 +57,15 @@ void PD_run() {
...
@@ -56,16 +57,15 @@ void PD_run() {
PD_SetPaddleTensorData
(
input
,
buf
);
PD_SetPaddleTensorData
(
input
,
buf
);
PD_Tensor
*
out_data
=
PD_NewPaddleTensor
();
PD_Tensor
*
out_data
=
PD_NewPaddleTensor
();
int
*
out_size
;
int
out_size
;
PD_PredictorRun
(
config
,
input
,
1
,
out_data
,
&
out_size
,
1
);
PD_PredictorRun
(
config
,
input
,
1
,
&
out_data
,
&
out_size
,
1
);
LOG
(
INFO
)
<<
*
out_size
;
LOG
(
INFO
)
<<
out_size
;
LOG
(
INFO
)
<<
PD_GetPaddleTensorName
(
out_data
);
LOG
(
INFO
)
<<
PD_GetPaddleTensorName
(
out_data
);
LOG
(
INFO
)
<<
PD_GetPaddleTensorDType
(
out_data
);
LOG
(
INFO
)
<<
PD_GetPaddleTensorDType
(
out_data
);
PD_PaddleBuf
*
b
=
PD_GetPaddleTensorData
(
out_data
);
PD_PaddleBuf
*
b
=
PD_GetPaddleTensorData
(
out_data
);
LOG
(
INFO
)
<<
PD_PaddleBufLength
(
b
);
LOG
(
INFO
)
<<
PD_PaddleBufLength
(
b
)
/
sizeof
(
float
)
;
float
*
result
=
static_cast
<
float
*>
(
PD_PaddleBufData
(
b
));
float
*
result
=
static_cast
<
float
*>
(
PD_PaddleBufData
(
b
));
LOG
(
INFO
)
<<
*
result
;
LOG
(
INFO
)
<<
*
result
;
PD_PaddleBufResize
(
b
,
500
);
PD_DeletePaddleTensor
(
input
);
PD_DeletePaddleTensor
(
input
);
int
*
size
;
int
*
size
;
PD_GetPaddleTensorShape
(
out_data
,
&
size
);
PD_GetPaddleTensorShape
(
out_data
,
&
size
);
...
@@ -132,16 +132,15 @@ void buffer_run() {
...
@@ -132,16 +132,15 @@ void buffer_run() {
PD_SetPaddleTensorData
(
input
,
buf
);
PD_SetPaddleTensorData
(
input
,
buf
);
PD_Tensor
*
out_data
=
PD_NewPaddleTensor
();
PD_Tensor
*
out_data
=
PD_NewPaddleTensor
();
int
*
out_size
;
int
out_size
;
PD_PredictorRun
(
config
,
input
,
1
,
out_data
,
&
out_size
,
1
);
PD_PredictorRun
(
config
,
input
,
1
,
&
out_data
,
&
out_size
,
1
);
LOG
(
INFO
)
<<
*
out_size
;
LOG
(
INFO
)
<<
out_size
;
LOG
(
INFO
)
<<
PD_GetPaddleTensorName
(
out_data
);
LOG
(
INFO
)
<<
PD_GetPaddleTensorName
(
out_data
);
LOG
(
INFO
)
<<
PD_GetPaddleTensorDType
(
out_data
);
LOG
(
INFO
)
<<
PD_GetPaddleTensorDType
(
out_data
);
PD_PaddleBuf
*
b
=
PD_GetPaddleTensorData
(
out_data
);
PD_PaddleBuf
*
b
=
PD_GetPaddleTensorData
(
out_data
);
LOG
(
INFO
)
<<
PD_PaddleBufLength
(
b
);
LOG
(
INFO
)
<<
PD_PaddleBufLength
(
b
)
/
sizeof
(
float
)
;
float
*
result
=
static_cast
<
float
*>
(
PD_PaddleBufData
(
b
));
float
*
result
=
static_cast
<
float
*>
(
PD_PaddleBufData
(
b
));
LOG
(
INFO
)
<<
*
result
;
LOG
(
INFO
)
<<
*
result
;
PD_PaddleBufResize
(
b
,
500
);
PD_DeletePaddleTensor
(
input
);
PD_DeletePaddleTensor
(
input
);
PD_DeletePaddleBuf
(
buf
);
PD_DeletePaddleBuf
(
buf
);
}
}
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录