Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
PaddlePaddle
PaddleX
提交
8aa1cc83
P
PaddleX
项目概览
PaddlePaddle
/
PaddleX
通知
138
Star
4
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
43
列表
看板
标记
里程碑
合并请求
5
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
P
PaddleX
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
43
Issue
43
列表
看板
标记
里程碑
合并请求
5
合并请求
5
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
提交
8aa1cc83
编写于
6月 25, 2020
作者:
J
jack
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
adapt encryption in linux and windows
上级
2f8c5cd4
变更
1
隐藏空白更改
内联
并排
Showing
1 changed file
with
17 addition
and
6 deletion
+17
-6
deploy/cpp/src/paddlex.cpp
deploy/cpp/src/paddlex.cpp
+17
-6
未找到文件。
deploy/cpp/src/paddlex.cpp
浏览文件 @
8aa1cc83
...
...
@@ -13,6 +13,7 @@
// limitations under the License.
#include <omp.h>
#include <algorithm>
#include <fstream>
#include <cstring>
#include "include/paddlex/paddlex.h"
namespace
PaddleX
{
...
...
@@ -27,17 +28,28 @@ void Model::create_predictor(const std::string& model_dir,
std
::
string
model_file
=
model_dir
+
OS_PATH_SEP
+
"__model__"
;
std
::
string
params_file
=
model_dir
+
OS_PATH_SEP
+
"__params__"
;
std
::
string
yaml_file
=
model_dir
+
OS_PATH_SEP
+
"model.yml"
;
std
::
string
yaml_input
=
""
;
#ifdef WITH_ENCRYPTION
if
(
key
!=
""
)
{
model_file
=
model_dir
+
OS_PATH_SEP
+
"__model__.encrypted"
;
params_file
=
model_dir
+
OS_PATH_SEP
+
"__params__.encrypted"
;
std
::
string
yaml_file
=
model_dir
+
OS_PATH_SEP
+
"model.yml.encrypted"
;
yaml_file
=
model_dir
+
OS_PATH_SEP
+
"model.yml.encrypted"
;
paddle_security_load_model
(
&
config
,
key
.
c_str
(),
model_file
.
c_str
(),
params_file
.
c_str
());
yaml_input
=
decrypt_file
(
yaml_file
.
c_str
(),
key
.
c_str
());
}
#endif
// 读取配置文件
if
(
!
load_config
(
yaml_file
))
{
if
(
yaml_input
==
""
)
{
// 读取配置文件
std
::
ifstream
yaml_fin
(
yaml_file
);
yaml_fin
.
seekg
(
0
,
std
::
ios
::
end
);
size_t
yaml_file_size
=
yaml_fin
.
tellg
();
yaml_input
.
assign
(
yaml_file_size
,
' '
);
yaml_fin
.
seekg
(
0
);
yaml_fin
.
read
(
&
yaml_input
[
0
],
yaml_file_size
);
}
// 读取配置文件内容
if
(
!
load_config
(
yaml_input
))
{
std
::
cerr
<<
"Parse file 'model.yml' failed!"
<<
std
::
endl
;
exit
(
-
1
);
}
...
...
@@ -67,9 +79,8 @@ void Model::create_predictor(const std::string& model_dir,
inputs_batch_
.
assign
(
batch_size
,
ImageBlob
());
}
bool
Model
::
load_config
(
const
std
::
string
&
yaml_file
)
{
// std::string yaml_file = model_dir + OS_PATH_SEP + "model.yml";
YAML
::
Node
config
=
YAML
::
LoadFile
(
yaml_file
);
bool
Model
::
load_config
(
const
std
::
string
&
yaml_input
)
{
YAML
::
Node
config
=
YAML
::
Load
(
yaml_input
);
type
=
config
[
"_Attributes"
][
"model_type"
].
as
<
std
::
string
>
();
name
=
config
[
"Model"
].
as
<
std
::
string
>
();
std
::
string
version
=
config
[
"version"
].
as
<
std
::
string
>
();
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录