提交 e3d34ae8 编写于 作者: L liuqi

Fix validation tool bug.

上级 43111426
...@@ -28,10 +28,10 @@ def load_data(file): ...@@ -28,10 +28,10 @@ def load_data(file):
def format_output_name(name): def format_output_name(name):
return re.sub('[^0-9a-zA-Z]+', '_', name) return re.sub('[^0-9a-zA-Z]+', '_', name)
def compare_output(mace_out_value, out_value): def compare_output(output_name, mace_out_value, out_value):
if mace_out_value.size != 0: if mace_out_value.size != 0:
similarity = (1 - spatial.distance.cosine(out_value.flat, mace_out_value.flat)) similarity = (1 - spatial.distance.cosine(out_value.flat, mace_out_value.flat))
print 'MACE VS TF similarity: ', similarity print output_name, 'MACE VS', FLAGS.platform.upper(), 'similarity: ', similarity
if (FLAGS.mace_runtime == "cpu" and similarity > 0.999) or \ if (FLAGS.mace_runtime == "cpu" and similarity > 0.999) or \
(FLAGS.mace_runtime == "gpu" and similarity > 0.995) or \ (FLAGS.mace_runtime == "gpu" and similarity > 0.995) or \
(FLAGS.mace_runtime == "dsp" and similarity > 0.930): (FLAGS.mace_runtime == "dsp" and similarity > 0.930):
...@@ -71,7 +71,7 @@ def validate_tf_model(input_names, input_shapes, output_names): ...@@ -71,7 +71,7 @@ def validate_tf_model(input_names, input_shapes, output_names):
for i in range(len(output_names)): for i in range(len(output_names)):
output_file_name = FLAGS.mace_out_file + "_" + format_output_name(output_names[i]) output_file_name = FLAGS.mace_out_file + "_" + format_output_name(output_names[i])
mace_out_value = load_data(output_file_name) mace_out_value = load_data(output_file_name)
compare_output(mace_out_value, output_values[i]) compare_output(output_names[i], mace_out_value, output_values[i])
def validate_caffe_model(input_names, input_shapes, output_names, output_shapes): def validate_caffe_model(input_names, input_shapes, output_names, output_shapes):
os.environ['GLOG_minloglevel'] = '1' # suprress Caffe verbose prints os.environ['GLOG_minloglevel'] = '1' # suprress Caffe verbose prints
...@@ -101,7 +101,7 @@ def validate_caffe_model(input_names, input_shapes, output_names, output_shapes) ...@@ -101,7 +101,7 @@ def validate_caffe_model(input_names, input_shapes, output_names, output_shapes)
value = value.reshape(out_shape).transpose((0, 2, 3, 1)) value = value.reshape(out_shape).transpose((0, 2, 3, 1))
output_file_name = FLAGS.mace_out_file + "_" + format_output_name(output_names[i]) output_file_name = FLAGS.mace_out_file + "_" + format_output_name(output_names[i])
mace_out_value = load_data(output_file_name) mace_out_value = load_data(output_file_name)
compare_output(mace_out_value, value) compare_output(output_names[i], mace_out_value, value)
def main(unused_args): def main(unused_args):
input_names = [name for name in FLAGS.input_node.split(',')] input_names = [name for name in FLAGS.input_node.split(',')]
......
...@@ -31,7 +31,7 @@ if [ "$GENERATE_DATA_OR_NOT" = 1 ]; then ...@@ -31,7 +31,7 @@ if [ "$GENERATE_DATA_OR_NOT" = 1 ]; then
fi fi
if [ "$PLATFORM" == "tensorflow" ];then if [ "$PLATFORM" == "tensorflow" ];then
if [[ x"$TARGET_ABI" -ne x"host" ]]; then if [[ x"$TARGET_ABI" != x"host" ]]; then
for NAME in "${OUTPUT_NAMES[@]}";do for NAME in "${OUTPUT_NAMES[@]}";do
FORMATTED_NAME=$(sed s/[^[:alnum:]]/_/g <<< ${NAME}) FORMATTED_NAME=$(sed s/[^[:alnum:]]/_/g <<< ${NAME})
rm -rf ${MODEL_OUTPUT_DIR}/${OUTPUT_FILE_NAME}_${FORMATTED_NAME} rm -rf ${MODEL_OUTPUT_DIR}/${OUTPUT_FILE_NAME}_${FORMATTED_NAME}
...@@ -73,14 +73,17 @@ elif [ "$PLATFORM" == "caffe" ];then ...@@ -73,14 +73,17 @@ elif [ "$PLATFORM" == "caffe" ];then
docker cp ${MODEL_OUTPUT_DIR}/${INPUT_FILE_NAME}_${FORMATTED_NAME} ${CONTAINER_NAME}:/mace docker cp ${MODEL_OUTPUT_DIR}/${INPUT_FILE_NAME}_${FORMATTED_NAME} ${CONTAINER_NAME}:/mace
done done
if [[ x"$TARGET_ABI" -ne x"host" ]]; then if [[ x"$TARGET_ABI" != x"host" ]]; then
for NAME in "${OUTPUT_NAMES[@]}";do for NAME in "${OUTPUT_NAMES[@]}";do
FORMATTED_NAME=$(sed s/[^[:alnum:]]/_/g <<< ${NAME}) FORMATTED_NAME=$(sed s/[^[:alnum:]]/_/g <<< ${NAME})
rm -rf ${MODEL_OUTPUT_DIR}/${OUTPUT_FILE_NAME}_${FORMATTED_NAME} rm -rf ${MODEL_OUTPUT_DIR}/${OUTPUT_FILE_NAME}_${FORMATTED_NAME}
adb </dev/null pull ${PHONE_DATA_DIR}/${OUTPUT_FILE_NAME}_${FORMATTED_NAME} ${MODEL_OUTPUT_DIR} adb pull ${PHONE_DATA_DIR}/${OUTPUT_FILE_NAME}_${FORMATTED_NAME} ${MODEL_OUTPUT_DIR}
docker cp ${MODEL_OUTPUT_DIR}/${OUTPUT_FILE_NAME}_${FORMATTED_NAME} ${CONTAINER_NAME}:/mace
done done
fi fi
for NAME in "${OUTPUT_NAMES[@]}";do
FORMATTED_NAME=$(sed s/[^[:alnum:]]/_/g <<< ${NAME})
docker cp ${MODEL_OUTPUT_DIR}/${OUTPUT_FILE_NAME}_${FORMATTED_NAME} ${CONTAINER_NAME}:/mace
done
MODEL_FILE_NAME=$(basename ${MODEL_FILE_PATH}) MODEL_FILE_NAME=$(basename ${MODEL_FILE_PATH})
WEIGHT_FILE_NAME=$(basename ${WEIGHT_FILE_PATH}) WEIGHT_FILE_NAME=$(basename ${WEIGHT_FILE_PATH})
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册