Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
慢慢CG
Mace
提交
ff10ba59
Mace
项目概览
慢慢CG
/
Mace
与 Fork 源项目一致
Fork自
Xiaomi / Mace
通知
1
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
DevOps
流水线
流水线任务
计划
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
Mace
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
DevOps
DevOps
流水线
流水线任务
计划
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
流水线任务
提交
Issue看板
提交
ff10ba59
编写于
1月 19, 2018
作者:
Y
yejianwu
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
update input and output shape in validate_model.sh and validate.py, remove model msg
上级
9b2c18bc
变更
2
隐藏空白更改
内联
并排
Showing
2 changed file
with
22 addition
and
15 deletion
+22
-15
validate.py
validate.py
+11
-5
validate_model.sh
validate_model.sh
+11
-10
未找到文件。
validate.py
浏览文件 @
ff10ba59
...
@@ -10,14 +10,20 @@ from tensorflow import gfile
...
@@ -10,14 +10,20 @@ from tensorflow import gfile
# Validation Flow:
# Validation Flow:
# 1. Generate input data
# 1. Generate input data
# python validate_icnet.py --generate_data 1
# python validate.py --generate_data true \
# --input_file input_file
# --input_shape 1,64,64,3
#
#
# 2. Use mace_run to run
icnet
on phone.
# 2. Use mace_run to run
model
on phone.
# 3. adb pull the result.
# 3. adb pull the result.
# 4. Compare output data of mace and tf
# 4. Compare output data of mace and tf
# python validate
_icnet.py --model_file opt_icne
t.pb \
# python validate
.py --model_file tf_model_op
t.pb \
# --input_file input_file \
# --input_file input_file \
# --mace_out_file icnet.out
# --mace_out_file output_file \
# --input_node input_node \
# --output_node output_node \
# --input_shape 1,64,64,3 \
# --output_shape 1,64,64,2
def
generate_data
(
shape
):
def
generate_data
(
shape
):
np
.
random
.
seed
()
np
.
random
.
seed
()
...
@@ -65,7 +71,7 @@ def run_model(input_shape):
...
@@ -65,7 +71,7 @@ def run_model(input_shape):
input_value
=
load_data
(
FLAGS
.
input_file
)
input_value
=
load_data
(
FLAGS
.
input_file
)
input_value
=
input_value
.
reshape
(
input_shape
)
input_value
=
input_value
.
reshape
(
input_shape
)
output_value
=
session
.
run
(
output_node
,
feed_dict
=
{
input_node
:
[
input_value
]
})
output_value
=
session
.
run
(
output_node
,
feed_dict
=
{
input_node
:
input_value
})
output_value
.
astype
(
np
.
float32
).
tofile
(
os
.
path
.
dirname
(
FLAGS
.
input_file
)
+
'/tf_out'
)
output_value
.
astype
(
np
.
float32
).
tofile
(
os
.
path
.
dirname
(
FLAGS
.
input_file
)
+
'/tf_out'
)
return
output_value
return
output_value
...
...
validate_model.sh
浏览文件 @
ff10ba59
...
@@ -2,10 +2,10 @@
...
@@ -2,10 +2,10 @@
# Must run at root dir of mace project.
# Must run at root dir of mace project.
set
+x
set
+x
Usage
()
{
Usage
()
{
echo
'Usage: bash tools/validate_model.sh tools/model.config tf_model_path model_tag i
mage_siz
e runtime[gpu/dsp] [tuning]'
echo
'Usage: bash tools/validate_model.sh tools/model.config tf_model_path model_tag i
nput_shape output_shap
e runtime[gpu/dsp] [tuning]'
}
}
if
[
$#
-lt
5
]
;
then
if
[
$#
-lt
6
]
;
then
Usage
Usage
exit
-1
exit
-1
fi
fi
...
@@ -14,9 +14,10 @@ source $1
...
@@ -14,9 +14,10 @@ source $1
TF_MODEL_FILE_PATH
=
$2
TF_MODEL_FILE_PATH
=
$2
MODEL_TAG
=
$3
MODEL_TAG
=
$3
IMAGE_SIZE
=
$4
INPUT_SHAPE
=
$4
RUNTIME
=
$5
OUTPUT_SHAPE
=
$5
TUNING_OR_NOT
=
${
6
:-
0
}
RUNTIME
=
$6
TUNING_OR_NOT
=
${
7
:-
0
}
if
[
x
"
$RUNTIME
"
=
x
"dsp"
]
;
then
if
[
x
"
$RUNTIME
"
=
x
"dsp"
]
;
then
DATA_TYPE
=
"DT_UINT8"
DATA_TYPE
=
"DT_UINT8"
...
@@ -87,8 +88,8 @@ build_and_run()
...
@@ -87,8 +88,8 @@ build_and_run()
MACE_RUN_PARAMETER_PATH
=
${
PHONE_DATA_DIR
}
/mace_run.config
\
MACE_RUN_PARAMETER_PATH
=
${
PHONE_DATA_DIR
}
/mace_run.config
\
MACE_KERNEL_PATH
=
$KERNEL_DIR
\
MACE_KERNEL_PATH
=
$KERNEL_DIR
\
${
PHONE_DATA_DIR
}
/mace_run
\
${
PHONE_DATA_DIR
}
/mace_run
\
--input_shape
=
"
1,
${
IMAGE_SIZE
}
,
${
IMAGE_SIZE
}
,3
"
\
--input_shape
=
"
${
INPUT_SHAPE
}
"
\
--output_shape
=
"
1,
${
IMAGE_SIZE
}
,
${
IMAGE_SIZE
}
,2
"
\
--output_shape
=
"
${
OUTPUT_SHAPE
}
"
\
--input_file
=
${
PHONE_DATA_DIR
}
/
${
INPUT_FILE_NAME
}
\
--input_file
=
${
PHONE_DATA_DIR
}
/
${
INPUT_FILE_NAME
}
\
--output_file
=
${
PHONE_DATA_DIR
}
/
${
OUTPUT_FILE_NAME
}
\
--output_file
=
${
PHONE_DATA_DIR
}
/
${
OUTPUT_FILE_NAME
}
\
--device
=
${
DEVICE_TYPE
}
\
--device
=
${
DEVICE_TYPE
}
\
...
@@ -99,7 +100,7 @@ echo "Step 1: Generate input data"
...
@@ -99,7 +100,7 @@ echo "Step 1: Generate input data"
rm
-rf
${
MODEL_DIR
}
/
${
INPUT_FILE_NAME
}
rm
-rf
${
MODEL_DIR
}
/
${
INPUT_FILE_NAME
}
python tools/validate.py
--generate_data
true
\
python tools/validate.py
--generate_data
true
\
--input_file
=
${
MODEL_DIR
}
/
${
INPUT_FILE_NAME
}
\
--input_file
=
${
MODEL_DIR
}
/
${
INPUT_FILE_NAME
}
\
--input_shape
=
"
${
I
MAGE_SIZE
}
,
${
IMAGE_SIZE
}
,3
"
||
exit
-1
--input_shape
=
"
${
I
NPUT_SHAPE
}
"
||
exit
-1
echo
"Step 2: Convert tf model to mace model and optimize memory"
echo
"Step 2: Convert tf model to mace model and optimize memory"
bazel build //lib/python/tools:tf_converter
||
exit
-1
bazel build //lib/python/tools:tf_converter
||
exit
-1
...
@@ -148,5 +149,5 @@ python tools/validate.py --model_file ${TF_MODEL_FILE_PATH} \
...
@@ -148,5 +149,5 @@ python tools/validate.py --model_file ${TF_MODEL_FILE_PATH} \
--mace_out_file
${
MODEL_DIR
}
/
${
OUTPUT_FILE_NAME
}
\
--mace_out_file
${
MODEL_DIR
}
/
${
OUTPUT_FILE_NAME
}
\
--input_node
${
TF_INPUT_NODE
}
\
--input_node
${
TF_INPUT_NODE
}
\
--output_node
${
TF_OUTPUT_NODE
}
\
--output_node
${
TF_OUTPUT_NODE
}
\
--input_shape
"
${
I
MAGE_SIZE
}
,
${
IMAGE_SIZE
}
,3
"
\
--input_shape
"
${
I
NPUT_SHAPE
}
"
\
--output_shape
"
1,
${
IMAGE_SIZE
}
,
${
IMAGE_SIZE
}
,2
"
--output_shape
"
${
OUTPUT_SHAPE
}
"
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录