K210学习笔记(十二)——MaixHub本地训练模型(Windows)

文章目录

  • 前言
  • 一、环境配置
    • 1.安装python3.8
    • 2.安装pip
    • 3.安装CUDA10.1
    • 4.安装CUDNN
    • 5.tensorflow安装
    • 6.MaixHub本地训练代码下载
  • 二、本地训练使用步骤
    • 1.安装依赖
    • 2.数据集准备
    • 3.开始训练
  • 三、训练中可能出现的问题
    • 1.版本错误![在这里插入图片描述](https://img-blog.csdnimg.cn/56d6a41017934c5a9e554c7269d69400.png#pic_center)
    • 2.显存不足![在这里插入图片描述](https://img-blog.csdnimg.cn/cddd91a37fee491c9bd6eb8c26ea88d3.png?x-oss-process=image/watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA57q4566x6YeM55qE54yr5ZKq,size_20,color_FFFFFF,t_70,g_se,x_16#pic_center)
    • 3.训练完成后没有生成压缩包
    • 4.判断是否在用GPU进行训练
    • 5.训练中出现Internal: no kernel image is available for execution on the device
    • 6.出现failed: TrainFailReason.ERROR_PARAM, datasets not valid: datasets format error: datasets error, not support format, please check
  • 总结


前言

MaixHub虽然可以在线训练模型,但是数据集限制大小为20M以下,而且大多数时候都需要排队才能训练模型,这可能就不能满足我们对模型的需求,所以我在Windows系统下搭建环境,本地训练模型。对于本地训练的纯小白来说,虽然MaixHub本地训练不需要虚拟机,但是还是要严格按照教程的步骤一步步来。不然很容易出错。

一、环境配置

1.安装python3.8

这里推荐安装python3.8,由于python3.9有一些不知名问题导致了环境可能会配置失败。点击下载python3.8。双击打开python3.8安装包,勾选如图所示,然后Install Now即可。K210学习笔记(十二)——MaixHub本地训练模型(Windows)_第1张图片
安装完成后win+r打开命令窗口,输入Python检测是否安装成功,显示这个则是安装成功。
K210学习笔记(十二)——MaixHub本地训练模型(Windows)_第2张图片

2.安装pip

因为在安装python3.8时已经默认安装pip了,所以这里不需要在另外安装pip,可以通过 pip list来查看python上安装了的包。这个警告是提醒当前pip不是最新版,可以不用管它。
K210学习笔记(十二)——MaixHub本地训练模型(Windows)_第3张图片

3.安装CUDA10.1

打开cuda10.1下载的链接,选择对应的系统版本和下载方式
K210学习笔记(十二)——MaixHub本地训练模型(Windows)_第4张图片
下载好的安装包,直接打开,然后一直点下一步就好了。
注意:如果电脑其它版本的CUDA,可以参考这个方法来选择指定CUDA《windows一个显卡配置多个CUDA版本》
安装完成后可以在系统变量中是否已经包含这两个路径。
K210学习笔记(十二)——MaixHub本地训练模型(Windows)_第5张图片

4.安装CUDNN

点击这里进入到cudnn的下载官网,选择cudnn v7.6.5.32 for cuda 10.1的版本进行下载,在这里插入图片描述
下载之后会得到一个cudnn-10.1-windows10-x64-v7.6.5.32.zip的压缩包,将其解压。得到三个文件夹在这里插入图片描述
都复制到 C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v10.1文件下面。这时CUDA的环境已经配置好了。

5.tensorflow安装

tensorflow-gpu 2.3.0版本对于cuda版本有点严格,cuda版本必须是10.1版本,cudnn是 10.1 V7.**版本,不然是不能使用GPU进行训练。
win+r,输入cmd,打开命令行输入

pip install tensorflow-gpu==2.3.0

如果下载的很慢,请输入

pip install tensorflow-gpu==2.3.0 -i https://pypi.mirrors.ustc.edu.cn/simple

6.MaixHub本地训练代码下载

到这里下载本地训练代码,进入连接之后,可以通过git命令进行下载,或者是点击Download ZIP进行下载压缩包。将压缩包解压,任何位置都都可以,只要你记得解压到哪里了。然后下载 ncc-win7-x86_64 并解压,就会得到一个叫ncc-win7-x86_64的文件夹,将这个文件夹名字修改为ncc_v0.1。再将这个文件夹的复制到maix_train/tools/ncc文件夹下面。(如果没有ncc这个文件夹就创建一个,路径一定要对的上)

ncc路径创建

二、本地训练使用步骤

1.安装依赖

打开解压后得到的文件夹,打开里面的 requirements.txt 文件,将里面的 tensorflow>=2.3.1 删除,保存关闭。
win+r,输入cmd,进入文件夹保存路径后输入

pip install -r requirements.txt

如果下载速度很慢的话,可以使用中科大源来进行下

pip install -r requirements.txt -i https://mirrors.aliyun.com/pypi/simple/

2.数据集准备

数据集的准备和MaixHub在线训练差不多,具体可以看《K210学习笔记(十一)——MaixHub在线训练模型(在线炼丹)》

3.开始训练

先进行初始化

python train.py init

将数据集放到本地训练源码中的datasets文件夹中,
分类训练输入

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

如果是没有压缩的文件夹,则输入

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

目标检测输入

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

注意:这里输入的命令中,在datasets/后面加的是你自己的所制作的数据集名字。
像我的数据集名字为datasets.zip,则我开始目标检测训练代码为:

python train.py -t detector -z datasets/datasets.zip train

输入代码后就可以开始训练了。训练完之后就会得到一个out的文件夹,里面的文件就是训练之后得到的模型。

三、训练中可能出现的问题

1.版本错误K210学习笔记(十二)——MaixHub本地训练模型(Windows)_第6张图片

这是包的版本对应不上导致的,下载对应版本的即可,比如:

pip install numpy==1.19.0
pip install tifffile==2021.6.14
pip install imageio==2.9.0

2.显存不足K210学习笔记(十二)——MaixHub本地训练模型(Windows)_第7张图片

出现这个报错

2022-04-21 16:50:38,364 - [ERROR]: failed: TrainFailReason.ERROR_INTERNAL, error occurred when train, error: Failed to get convolution algorithm. This is probably because cuDNN failed to initialize, so try looking to see if a warning log message was printed above.

原因是因为显存不足引起,可以直接在文件中加入如下代码,让tensorflow自动进行显存分配(本人电脑太拉了,就报这个错)
在D:\maix_train\maix\train\classifier(训练代码存放路径)中的__init__.py中找到K210学习笔记(十二)——MaixHub本地训练模型(Windows)_第8张图片
在import语句后加入代码:

from tensorflow.compat.v1 import ConfigProto
from tensorflow.compat.v1 import InteractiveSession
config = ConfigProto()
config.gpu_options.allow_growth = True
session = InteractiveSession(config=config)

在D:\maix_train\maix\train\detector中的__init__.py中找到K210学习笔记(十二)——MaixHub本地训练模型(Windows)_第9张图片
在import语句后加入代码:

from tensorflow.compat.v1 import ConfigProto
from tensorflow.compat.v1 import InteractiveSession
config = ConfigProto()
config.gpu_options.allow_growth = True
session = tf.compat.v1.Session(config=config)

再次运行训练任务,问题解决。

3.训练完成后没有生成压缩包

这个原因是因为,maix_train/tools/ncc/ncc_v0.1路径没有设置好,或者下载的不是ncc-win7-x86_64。

4.判断是否在用GPU进行训练

1.启动训练的查看是否出现答应出这些信息,并都是和下图框出来的一样的

如果没有,则说明你的前面的cuda和cudnn环境没有安装好,请将所有关于英伟达的软件驱动进行卸载,是卸载!!!不是将文件删除。然后再重新进行cuda和cudnn的环境配置。

2.在任务管理器中查看,GPU 的显存有没有被使用到,而不是看显卡的利用率

3.训练刚开始出现的 no GPU,will use CPU 只是一个提示信息而已,并不是没有使用到
4.看看笔记本有没有起飞(手动狗头)。

5.训练中出现Internal: no kernel image is available for execution on the device

环境需要重新安装,tensorflow安装版本没有对上

6.出现failed: TrainFailReason.ERROR_PARAM, datasets not valid: datasets format error: datasets error, not support format, please check

这种就是没有严格的安装数据集要求来进行制作,检查你的文件夹名字,就可以解决的了,特别是images这个文件夹,容易少了个s。


总结

MaixHub本地训练如果不严格按照步骤进行的话,还是很容易出错的,比如我在安装CUDA的时候就卡了很久,原因是我更改了安装路径,导致安装路径被电脑自动删除了,第n次之后一直点下一步就没有这个问题了。学到这里对MAIX BIT(K210)已经有了初步的了解,用来比赛、做毕设应该是没有任何问题了,后面再更新MAIX BIT(K210)的学习笔记,可能就是MaixHub本地训练模型(Linux)和一些用k210进行实战的项目(奈何学生党一个,没有票子去买配件)。
K210学习笔记(十二)——MaixHub本地训练模型(Windows)_第10张图片

你可能感兴趣的:(K210学习笔记,人工智能,python,计算机视觉)