https://github.com/webduinoio/maix_train
https://github.com/webduinoio/maix_train
Last synced: 3 months ago
JSON representation
- Host: GitHub
- URL: https://github.com/webduinoio/maix_train
- Owner: webduinoio
- License: apache-2.0
- Created: 2021-09-30T09:19:11.000Z (over 3 years ago)
- Default Branch: master
- Last Pushed: 2021-10-01T03:50:58.000Z (over 3 years ago)
- Last Synced: 2025-02-03T14:41:18.152Z (5 months ago)
- Language: Python
- Size: 13.2 MB
- Stars: 0
- Watchers: 4
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
train_scripts
===========You can also train on [Maixhub.com](https://www.maixhub.com),
just upload your datasets and you will get the result(kmodel and usage code)## Train type
* Object classification(Mobilenet V1): judge class of image
* Object detection(YOLO v2): find a recognizable object in the picture## Usage
### 0. Prepare
* only support `Linux`
* Prepare environment, use CPU or GPU to train
At your fist time train, CPU is recommended, just
```
pip3 install -r requirements.txt
```
or use aliyun's source if you are in China
```
pip3 install -r requirements.txt -i https://mirrors.aliyun.com/pypi/simple/
```* [Download nncase](https://github.com/kendryte/nncase/releases/tag/v0.1.0-rc5) and unzip it to `tools/ncc/ncc_v0.1`, and the executable path is `tools/ncc/ncc_v0.1/ncc`
* `python3 train.py init`
* Edit `instance/config.py` according to your hardware
* Prepare dataset, in the `datasets` directory has some example datasets, input size if `224x224`
or you just fllow [maixhub](https://www.maixhub.com/mtrain.html)'s conduct### 1. Object classification (Mobilenet V1)
```
python3 train.py -t classifier -z datasets/test_classifier_datasets.zip train
```
or assign datasets directory
```
python3 train.py -t classifier -d datasets/test_classifier_datasets train
```more command see`python3 train.py -h`
and you will see output in the `out` directory, packed as a zip file
### 2. Object detection (YOLO V2)
```
python3 train.py -t detector -z datasets/test_detector_xml_format.zip train
```more command see`python3 train.py -h`
and you will see output in the `out` directory, packed as a zip file
## Use GPU
Use docker or install tensorflow with GPU in your local environment
Tensorflow's version should >= 2.0, tested on 2.1
### Use docker(recommend)
see [tensorflow official website](https://tensorflow.google.cn/install/docker) (或者可以参考[这篇教程](https://neucrack.com/p/116))
* Install docker
* Install [nvidia-docker](https://github.com/NVIDIA/nvidia-docker)
* Pull docker image
```
docker pull neucrack/tensorflow-gpu-py3-jupyterlab
```
or
```
docker pull daocloud.io/neucrack/tensorflow-gpu-py3-jupyterlab
```
* Test environment
```
docker run --gpus all -it --rm neucrack/tensorflow-gpu-py3-jupyterlab python -c "import tensorflow as tf; print('-----version:{}, gpu:{}, 1+2={}'.format(tf.__version__, tf.test.is_gpu_available(), tf.add(1, 2).numpy()) );"
```
if output is`-----version:2.1.0, gpu:True, 1+2=3`, that's ok(maybe version can `> 2.1.0`)
* Create docker container
```shell
docker run --gpus all --name jupyterlab-gpu -it -p 8889:8889 -e USER_NAME=$USER -e USER_ID=`id -u $USER` -e GROUP_NAME=`id -gn $USER` -e GROUP_ID=`id -g $USER` -v /home/${USER}:/tf neucrack/tensorflow-gpu-py3-jupyterlab
```
If used daocloud, image name should be change to `daocloud.io/neucrack/tensorflow-gpu-py3-jupyterlab`This will mount your`/home/$USER` directory to `/tf` directory of container, the `/tf` is the root dir of jupyterlab
Stop by `docker stop jupyterlab-gpu`, start again by `docker start jupyterlab-gpu`
To use `sudo` command, edit user password by
```shell
docker exec -it jupyterlab_gpu /bin/bash
passwd $USER
passwd root
```* use jupyterlab
Open `http://127.0.0.1:8889/lab?` in browser, input token(see docker start log) and set new password
Use `docker stop jupyterlab-gpu` to stop server
Use `docker start jupyterlab-gpu` to start service again### Install on local environment
refer to [tensorflow official website](https://tensorflow.google.cn/install/gpu)
## License
Apache 2.0, see [LICENSE](LICENSE)