From 588ebc5ccab2e47c42c3e9303306e3744834f52f Mon Sep 17 00:00:00 2001 From: Georgios Pinitas Date: Fri, 21 Dec 2018 13:39:07 +0000 Subject: COMPMID-1839: Add script from extracting tf frozen models. Change-Id: I9a61b9005ea829cd9ecae5bebf8985fe72e28b8e Reviewed-on: https://review.mlplatform.org/448 Reviewed-by: Manuel Bottini Tested-by: Arm Jenkins Reviewed-by: Michele Di Giorgio --- docs/03_scripts.dox | 55 +++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 55 insertions(+) (limited to 'docs') diff --git a/docs/03_scripts.dox b/docs/03_scripts.dox index 11deea2bc1..6b715908dd 100644 --- a/docs/03_scripts.dox +++ b/docs/03_scripts.dox @@ -114,5 +114,60 @@ If the script runs successfully, it prints the names and shapes of each paramete The arm_compute::utils::load_trained_data shows how one could load the weights and biases into tensor from the .npy file by the help of Accessor. + +@section tf_frozen_model_extractor Extract data from pre-trained frozen tensorflow model + +The script tf_frozen_model_extractor.py extracts trainable parameters (e.g. values of weights and biases) from a +frozen trained Tensorflow model. + +@subsection tensorflow_frozen_how_to How to use the script + +Install Tensorflow and NumPy. + +Download the pre-trained Tensorflow model and freeze the model using the architecture and the checkpoint file. + +Run tf_frozen_model_extractor.py with + + python tf_frozen_model_extractor -m -d + +For example, to extract the data from pre-trained Tensorflow model to binary files: + + python tf_frozen_model_extractor -m /path/to/inceptionv3.pb -d ./data + +@subsection tensorflow_frozen_result What is the expected output from the script + +If the script runs successfully, it prints the names and shapes of each parameter onto the standard output and generates + *.npy files containing the weights and biases of each layer. + +The arm_compute::utils::load_trained_data shows how one could load +the weights and biases into tensor from the .npy file by the help of Accessor. + +@section validate_examples Validating examples +Using one of the provided scripts will generate files containing the trainable parameters. + +You can validate a given graph example on a list of inputs by running: + + LD_LIBRARY_PATH=lib ./ --validation-range='' --validation-file='' --validation-path='/path/to/test/images/' --data='/path/to/weights/' + +e.g: + +LD_LIBRARY_PATH=lib ./bin/graph_alexnet --target=CL --layout=NHWC --type=F32 --threads=4 --validation-range='16666,24998' --validation-file='val.txt' --validation-path='images/' --data='data/' + +where: + validation file is a plain document containing a list of images along with their expected label value. + e.g: + + val_00000001.JPEG 65 + val_00000002.JPEG 970 + val_00000003.JPEG 230 + val_00000004.JPEG 809 + val_00000005.JPEG 516 + + --validation-range is the index range of the images within the validation file you want to check: + e.g: + + --validation-range='100,200' will validate 100 images starting from 100th one in the validation file. + + This can be useful when parallelizing the validation process is needed. */ } \ No newline at end of file -- cgit v1.2.1