Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
PaddlePaddle
PaddleX
提交
b66b3a1a
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看板
提交
b66b3a1a
编写于
5月 31, 2020
作者:
J
jiangjiajun
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
modify cal sensitivities
上级
f001960b
变更
1
隐藏空白更改
内联
并排
Showing
1 changed file
with
12 addition
and
10 deletion
+12
-10
paddlex/cv/models/slim/prune.py
paddlex/cv/models/slim/prune.py
+12
-10
未找到文件。
paddlex/cv/models/slim/prune.py
浏览文件 @
b66b3a1a
...
...
@@ -66,16 +66,15 @@ def sensitivity(program,
progress
=
"%.2f%%"
%
(
progress
*
100
)
logging
.
info
(
"Total evaluate iters={}, current={}, progress={}, eta={}"
.
format
(
total_evaluate_iters
,
current_iter
,
progress
,
seconds_to_hms
(
int
(
cost
*
(
total_evaluate_iters
-
current_iter
)))),
format
(
total_evaluate_iters
,
current_iter
,
progress
,
seconds_to_hms
(
int
(
cost
*
(
total_evaluate_iters
-
current_iter
)))),
use_color
=
True
)
current_iter
+=
1
pruner
=
Pruner
()
logging
.
info
(
"sensitive - param: {}; ratios: {}"
.
format
(
name
,
ratio
))
logging
.
info
(
"sensitive - param: {}; ratios: {}"
.
format
(
name
,
ratio
))
pruned_program
,
param_backup
,
_
=
pruner
.
prune
(
program
=
graph
.
program
,
scope
=
scope
,
...
...
@@ -87,8 +86,8 @@ def sensitivity(program,
param_backup
=
True
)
pruned_metric
=
eval_func
(
pruned_program
)
loss
=
(
baseline
-
pruned_metric
)
/
baseline
logging
.
info
(
"pruned param: {}; {}; loss={}"
.
format
(
name
,
ratio
,
loss
))
logging
.
info
(
"pruned param: {}; {}; loss={}"
.
format
(
name
,
ratio
,
loss
))
sensitivities
[
name
][
ratio
]
=
loss
...
...
@@ -221,6 +220,9 @@ def cal_params_sensitivities(model, save_file, eval_dataset, batch_size=8):
其中``weight_0``是卷积Kernel名;``sensitivities['weight_0']``是一个字典,key是裁剪率,value是敏感度。
"""
if
os
.
path
.
exists
(
save_file
):
os
.
remove
(
save_file
)
prune_names
=
get_prune_params
(
model
)
def
eval_for_prune
(
program
):
...
...
@@ -264,8 +266,8 @@ def get_params_ratios(sensitivities_file, eval_metric_loss=0.05):
if
not
osp
.
exists
(
sensitivities_file
):
raise
Exception
(
'The sensitivities file is not exists!'
)
sensitivitives
=
paddleslim
.
prune
.
load_sensitivities
(
sensitivities_file
)
params_ratios
=
paddleslim
.
prune
.
get_ratios_by_loss
(
sensitivitives
,
eval_metric_loss
)
params_ratios
=
paddleslim
.
prune
.
get_ratios_by_loss
(
sensitivitives
,
eval_metric_loss
)
return
params_ratios
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录