提交 2bee11ed 编写于 作者: L Liangliang He

Merge branch 'generate-header' into 'master'

Fix validate gcn to support source-based mace run.

See merge request !165
...@@ -29,9 +29,7 @@ cc_test( ...@@ -29,9 +29,7 @@ cc_test(
cc_binary( cc_binary(
name = "mace_run", name = "mace_run",
srcs = [ srcs = glob(["models/*/*.cc"] + ["mace_run.cc"]),
"mace_run.cc",
],
copts = ["-std=c++11"], copts = ["-std=c++11"],
linkopts = ["-fopenmp"] + if_android(["-ldl"]), linkopts = ["-fopenmp"] + if_android(["-ldl"]),
linkstatic = 1, linkstatic = 1,
......
...@@ -21,7 +21,7 @@ using namespace std; ...@@ -21,7 +21,7 @@ using namespace std;
using namespace mace; using namespace mace;
namespace mace { namespace mace {
extern NetDef CreateNet(); extern NetDef CreateGCN512();
} }
void ParseShape(const string &str, vector<index_t> *shape) { void ParseShape(const string &str, vector<index_t> *shape) {
string tmp = str; string tmp = str;
...@@ -95,7 +95,7 @@ int main(int argc, char **argv) { ...@@ -95,7 +95,7 @@ int main(int argc, char **argv) {
// NetDef net_def; // NetDef net_def;
// net_def.ParseFromIstream(&file_stream); // net_def.ParseFromIstream(&file_stream);
// file_stream.close(); // file_stream.close();
NetDef net_def = mace::CreateNet(); NetDef net_def = mace::CreateGCN512();
DeviceType device_type = ParseDeviceType(device); DeviceType device_type = ParseDeviceType(device);
VLOG(0) << device_type; VLOG(0) << device_type;
......
...@@ -12,6 +12,7 @@ fi ...@@ -12,6 +12,7 @@ fi
TF_MODEL_FILE_PATH=$1 TF_MODEL_FILE_PATH=$1
MODEL_DIR=$(dirname ${TF_MODEL_FILE_PATH}) MODEL_DIR=$(dirname ${TF_MODEL_FILE_PATH})
MACE_SOURCE_DIR=`/bin/pwd`
MACE_MODEL_NAME='mace_model.pb' MACE_MODEL_NAME='mace_model.pb'
INPUT_FILE_NAME='model_input' INPUT_FILE_NAME='model_input'
OUTPUT_FILE_NAME='gcn.out' OUTPUT_FILE_NAME='gcn.out'
...@@ -19,6 +20,7 @@ OUTPUT_LIST_FILE='gcn.list' ...@@ -19,6 +20,7 @@ OUTPUT_LIST_FILE='gcn.list'
PHONE_DATA_DIR="/data/local/tmp/${MACE_MODEL_NAME}" PHONE_DATA_DIR="/data/local/tmp/${MACE_MODEL_NAME}"
KERNEL_DIR="${PHONE_DATA_DIR}/cl/" KERNEL_DIR="${PHONE_DATA_DIR}/cl/"
IMAGE_SIZE=$2 IMAGE_SIZE=$2
MODEL_TAG=GCN${IMAGE_SIZE}
# Step 1: Generate input data # Step 1: Generate input data
echo "Step 1: Generate input data" echo "Step 1: Generate input data"
...@@ -27,14 +29,20 @@ python tools/validate.py --generate_data true --random_seed 1 \ ...@@ -27,14 +29,20 @@ python tools/validate.py --generate_data true --random_seed 1 \
--input_shape="${IMAGE_SIZE},${IMAGE_SIZE},3" --input_shape="${IMAGE_SIZE},${IMAGE_SIZE},3"
# Step 2: convert tf model to mace model # Step 2: convert tf model to mace model
#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 //mace/python/tools:tf_converter echo $MACE_SOURCE_DIR
#bazel-bin/mace/python/tools/tf_converter --input=${TF_MODEL_FILE_PATH} \ bazel build //mace/python/tools:tf_converter
# --output=${MODEL_DIR}/${MACE_MODEL_NAME} \ mkdir -p ${MACE_SOURCE_DIR}/mace/examples/models/gcn
# --input_node=input \ bazel-bin/mace/python/tools/tf_converter --input=${TF_MODEL_FILE_PATH} \
# --output_node=GCN/br_result_2/fcn_br \ --output=${MACE_SOURCE_DIR}/mace/examples/models/gcn/mace_gcn.cc \
# --data_type=DT_HALF \ --input_node=input \
# --runtime=gpu --output_node=GCN/br_result_2/fcn_br \
--data_type=DT_HALF \
--runtime=gpu \
--output_type=source \
--template=${MACE_SOURCE_DIR}/mace/python/tools/model.template \
--model_tag=${MODEL_TAG} \
--confuse=True
# Step 3: Run model on the phone # Step 3: Run model on the phone
echo "Step 3: Run model on the phone" echo "Step 3: Run model on the phone"
...@@ -46,7 +54,6 @@ bazel build -c opt --strip always mace/examples:mace_run \ ...@@ -46,7 +54,6 @@ bazel build -c opt --strip always mace/examples:mace_run \
adb shell "mkdir -p ${PHONE_DATA_DIR}" adb shell "mkdir -p ${PHONE_DATA_DIR}"
adb shell "mkdir -p ${KERNEL_DIR}" adb shell "mkdir -p ${KERNEL_DIR}"
adb push mace/kernels/opencl/cl/* ${KERNEL_DIR} adb push mace/kernels/opencl/cl/* ${KERNEL_DIR}
#adb push ${MODEL_DIR}/${MACE_MODEL_NAME} ${PHONE_DATA_DIR}
adb push ${MODEL_DIR}/${INPUT_FILE_NAME} ${PHONE_DATA_DIR} adb push ${MODEL_DIR}/${INPUT_FILE_NAME} ${PHONE_DATA_DIR}
adb push bazel-bin/mace/examples/mace_run ${PHONE_DATA_DIR} adb push bazel-bin/mace/examples/mace_run ${PHONE_DATA_DIR}
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册