本地模型训练 for Linux

没有任何的开发基础请慎重使用,出现问题请自行解决!

windows10上使用本地训练教程看这里

本地模型训练使用 sipeed/maix_train 这份代码进行, 使用了 Tensorflow 作为训练框架
以下所有的训练使用的代码都是在linux下进行使用的,不是在windows下使用的!
主要支持:

  • 物体分类模型(使用 Mobilenet V1): 只识别图片中的物体是什么
  • 物体检测模型(使用 YOLO V2): 找到图片中认识的图体,并同时找到其坐标和大小

系统环境

首先,需要一台有 Linux 系统的电脑
如果你的主力系统是 Windows, 你可以用以下系统环境:

  • 使用虚拟机, virtual box 或者 vmware 都可以, 系统推荐安装Ubuntu20.04
  • 或者安装双系统,安装方法请自行搜索学习,或者看这个双系统安装教程

你可能想着在 Windows 下面进行开发, 但是这里强烈建议使用Linux而不是Windows

  • 首先,大多数模型训练框架都是首先支持 Linux, 在Linux下面开发的难度会比Windows下开发更加容易
  • 作为一个开发者, 学会使用Linux是基础技能,当然,除非你是Windows狂热粉, 那我相信你一定有把其它系统的软件移植到Windows的能力
  • 对于windows环境的配置存在许多奇奇怪怪的现象,会出现无法使用GPU进行训练,只能使用CPU训练

软件安装

训练可以使用 CPU 进行训练,但是速度比较慢, 如果使用专用的显卡(GPU)进行加速,速度会快非常多,个人一般使用Nvidia的显卡, 比如RTX 3090, 当然,使用普通的GTX 1060 6G内存版本就可以愉快使用了

初次接触,建议先使用 CPU 进行训练,环境安装会简单很多很多, 以下只讲 CPU 训练的方法, GPU 请自行学习

GPU 使用可以参考 Tensorflow 官方 GPU 使用教程, 如果你显卡驱动遇到了问题,可以参考这里, 另外如果你用 docker 安装遇到了问题, 也可以看这里

接下来的使用方法摘抄于仓库的 README, 如果有出入, 以仓库的README为准,注意分辨

  • 将训练代码克隆到本地
git clone https://github.com/sipeed/maix_train --recursive
  • 安装依赖
cd maix_train
pip3 install -r requirements.txt

中国用户可以使用阿里云或者清华的源, 下载速度更快

pip3 install -r requirements.txt -i https://mirrors.aliyun.com/pypi/simple/
  • 下载 nncase v0.1.0-rc5 并解压到 maix_train/tools/ncc/ncc_v0.1, 保证可执行文件的路径是 maix_train/tools/ncc/ncc_v0.1/ncc

  • 配置工程

先初始化工程

python3 train.py init

然后根据你的硬件情况,编辑maix_train/instance/config.py配置

准备数据集

准备数据集, 图片大小为 224x224, 格式可以参考maix_train/datasets下的数据集示例

训练分类模型

python3 train.py -t classifier -z datasets/test_classifier_datasets.zip train

或者解压数据集到文件夹,指定数据集文件夹

python3 train.py -t classifier -d datasets/test_classifier_datasets train

训练目标检测模型

python3 train.py -t detector -z datasets/test_detector_xml_format.zip train

使用模型

和使用Maixhub训练的模型一样, 在out文件夹会生成一个zip文件,里面包含了结果,把所有文件拷贝到SD卡根目录,然后开发板上电运行即可