From 7be192529936563e0910ae903f43a9eb97fc9214 Mon Sep 17 00:00:00 2001 From: SeungHui Youn <61981457+zetwhite@users.noreply.github.com> Date: Mon, 4 Mar 2024 12:05:27 +0900 Subject: [PATCH] [tools/onert_train] Add onert_train usage example to readme (#12714) This PR adds a example to use onert_train in the readme. ONE-DCO-1.0-Signed-off-by: SeungHui Youn --- tests/tools/onert_train/README.md | 58 +++++++++++++++++++++++++++++++ 1 file changed, 58 insertions(+) diff --git a/tests/tools/onert_train/README.md b/tests/tools/onert_train/README.md index 0c05c77eb83..4a798f8f0e3 100644 --- a/tests/tools/onert_train/README.md +++ b/tests/tools/onert_train/README.md @@ -34,3 +34,61 @@ onert_train \ ``` `onert_train --help` would help you to set each parameter. + +## Example + +To deliver a quick insight to use `onert_train`, let's train a simple mnist model. You could get a mnist tensroflow model code from [here](https://www.kaggle.com/code/amyjang/tensorflow-mnist-cnn-tutorial). + +Before using `onert_train`, training data files and a model file have to be ready. + +### Prepare training data files + +`onert_train` expects that a preprocessed dataset is given as binary files.
+For convenience, we provide a tool([tf dataset convert](https://github.com/Samsung/ONE/tree/master/tools/generate_datafile/tf_dataset_converter)) that preprocesses tensorflow dataset and save it as binary files. + +You could use the tool like this. For detailed usage, please refer [here](https://github.com/Samsung/ONE/tree/master/tools/generate_datafile/tf_dataset_converter#readme). +```bash +# Move to tf_dataset_convert directory +$ cd ONE/tools/generate_datafile/tf_dataset_converter + +# install prerequisites +$ pip3 install -r requirements.txt + +# generate binary data files +$ python3 main.py \ +--dataset-name mnist \ +--prefix-name mnist \ +--model mnist + +# check data files are generated +# There are 'mnist.train.input.1000.bin' and 'mnist.train.output.1000.bin' +$ tree out +``` + +### Prepare a circle model file + +`onert_train` use a `*.circle` file or a nnpackage as input.
+ + +You could convert tf/tflite/onnx model file into circle file using [`onecc`](https://github.com/Samsung/ONE/tree/master/compiler/one-cmds).
+If you start with tensorflow code, you could first save it as saved format and then convert it to a circle file by using `onecc`. + + + +### Run onert_train +Now you're ready to run `onert_train`.
+Please pass your model file to `--modelfile` and data files to `--load_input:raw` and `--load_expected:raw`.
+Also, you could set training parameter using options like `--batch_size`, `--epoch`.. etc. + +```bash +$ onert_train \ +--modelfile mnist.circle \ +--load_input:raw mnist.train.input.1000.bin \ +--load_expected:raw mnist.train.output.1000.bin \ +--batch_size 32 \ +--epoch 5 \ +--optimizer 2 \ # adam +--learning_rate 0.001 \ +--loss 2 \ # cateogrical crossentropy +--loss_reduction_type 1 # sum over batch size +```