PowerSensor AI教程1.1 - 数字识别 - tf模型训练

写在前面

  1. 需要懂一点机器学习
  2. 需要懂一点常用的shell指令
  3. 最好电脑配有显卡,训练过程会快很多
  4. 模型训练不要使用虚拟机,会非常慢
  5. windows和linux都可以用来训练模型,不要歧视windows
  6. 本章的例程在下面的百度网盘可以下载到:
    链接:https://pan.baidu.com/s/1-ThiQVzCazyY-5ZnqMYfXw
    提取码:bg7c

背景知识

  1. 人工神经网络
    人工神经网络(Artificial Neural Network,即ANN ),是20世纪80 年代以来人工智能领域兴起的研究热点。它从信息处理角度对人脑神经元网络进行抽象, 建立某种简单模型,按不同的连接方式组成不同的网络。在工程与学术界也常直接简称为神经网络或类神经网络。神经网络是一种运算模型,由大量的节点(或称神经元)之间相互联接构成。每个节点代表一种特定的输出函数,称为激励函数(activation function)。每两个节点间的连接都代表一个对于通过该连接信号的加权值,称之为权重,这相当于人工神经网络的记忆。网络的输出则依网络的连接方式,权重值和激励函数的不同而不同。而网络自身通常都是对自然界某种算法或者函数的逼近,也可能是对一种逻辑策略的表达。

  2. 深度学习
    深度学习是机器学习中一种基于对数据进行表征学习的算法。目前常说的深度学习技术主要指利用深层(5层或以上)的神经网络对一个模型(比如手写数字识别)进行逼近的技术。深度学习可以看成一个万能逼近器,只要提供足够多的样本和标签,通过训练,深度学习就可以代替人类,完成生活中的分类、跟踪等任务。

  3. 深度学习的模型、结构、权值
    我们常说的深度学习的模型主要包含神经网络的结构和权值两个部分,为什么要把这两个参数分开呢?因为一般网络结构具有较好的泛化能力,就是说识别水果和识别数字可以使用同一个网络结构,但是权值往往具有针对性,同一个结构的神经网络通过载入不同的权值来实现不同的识别任务。下文所说的模型编译指:当网络训练好要对模型进行部署时,把网络权值固化到网络结构里,并编译成powersensor能够运行的机器码。

  4. tensorflow
    tensorflow是google开发的一个机器学习库,支持python等多种编程语言。虽然深度学习本身的结构复杂,很难从零开始编程实现,但是通过tensorflow,哪怕一个是中学生也可以通过几十行代码完成简单的深度学习网络的实现和训练。

  5. dpu和dnndk
    DPU是xilinx推出的一个适用于FPGA的用于深度学习加速的IP核,为了方便用户将自己训练的模型部署到DPU中,xilinx推出了dnndk来完成模型编译(将用户模型编译成DPU能运行的模型)。可以说,DPU是硬件IP核,而dnndk是软件管理的函数库。由于dnndk只能在linux平台下运行, 为了方便大家,我们准备了一个按照好dnndk的vmware虚拟机,这样用户就可以在windows下通过虚拟机完成模型编译。

  6. Anaconda
    Anaconda是一个免费开源[5]PythonR语言的发行版本,用于计算科学数据科学机器学习大数据处理预测分析),Anaconda致力于简化包管理和部署。Anaconda的包使用软件包管理系统Conda[6]进行管理。(来自wiki百科)。
    简单的说,Anaconda是一个python的包提供平台,软件仓库,同时配有conda管理工具。

  7. conda
    conda是一个开源跨平台的包管理和环境管理系统,常用于python虚拟环境的搭建与管理。conda允许用户从不同的源下载和升级软件包。conda使得用户可以同时安装多个python虚拟环境,通过激活的方式,在不同的任务中使用不同的虚拟环境。

powersensor ai案例的开发流程

在了解了以上的基础知识后,如果要把一个深度学习模型部署到powersensor上运行需要进行以下流程。

  • 首先,PC环节,使用tensorflow(本文使用的是tensorflow2.0)完成深度学习模型的设计和训练,并将结构和权值分开存储。
  • 然后,dnndk环节,在虚拟机下完成模型权值固化,并使用dnndk将tensorflow模型编译成dpu能够运行的模型(elf模型)。
  • 最后,edge环节,在powersensor下编写调度程序,完成最终的深度学习任务。
    本章主要介绍第一步,pc环节。

软件安装与启动

软件安装(只需要进行一次)

  1. 安装anaconda,下载地址(去我们的百度网盘下载):https://www.anaconda.com/products/individual

  2. 启动anaconda prompt,这个是终端,大部分包的安装等操作会在终端进行

  3. 新建一个虚拟的Anaconda环境。命令过程需要输入y确认,这里都把这个步骤略过。

# 新建一个虚拟环境,名为ps
conda create -n ps
# 激活ps环境,每次启动prompt都需要激活,激活后左侧的标识会变成ps
(base) C:\Users\xxx>conda activate ps

(ps) C:\Users\xxx>
  1. 逐条输入以下指令完成python软件包的安装

熟悉的用户可以通过ananconda换源来提升在国内的下载速度,教程见https://mirror.tuna.tsinghua.edu.cn/help/anaconda/

conda install opencv
conda install matplotlib
conda install jupyter

# 没有显卡的安装这个tf
conda install tensorflow
# 有显卡的安装这个tf
conda install tensorflow-gpu

启动jupyter(每次启动需要进行一次)

# 首先激活环境
conda activate ps
# 启动jupyter,路径填powersensor_flowerclassfication所在盘的盘符(如e:)
jupyter-notebook --notebook-dir 路径

模型训练与保存

模型训练

  1. 解压下载到的ministNumber_classificaiton压缩包(或者从Github上获取,从Github上可以获取到最新的程序,但是数据集需要额外下载),可以看到以下目录结构

dir
其中,dataset中存放的是用于训练和测试的数据集,dataset_valid存放的是用于验证的数据集。pc存放的是tensorflow相关的训练文件,用于训练模型。dnndk存放的是需要拷贝到虚拟机编译配置文件。edge存放的是在powersensor运行的调度文件。

  1. 启动anaconda,激活上面建好的环境,启动jupyter。进入pc文件夹,打开modelTrain.ipython,按照记事本的提示逐个运行。

  2. 首先是包含头文件和重要的参数初始化,如果没有GPU,请把GPU下面的4行注释掉

import cv2
import numpy as np
import os
import tensorflow as tf
from tensorflow import keras
import random
import time
import matplotlib.pyplot as plt

# 有GPU才能打印
gpus =
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值