Linux系统上常用软件集锦
[TOC]
概述概述文章参考:https://blog.csdn.net/weixin_45747759/article/details/122522520?spm=1001.2014.3001.5501
Linux系统上常用软件集锦
[TOC]
概述深度学习的基础实现流程数据集准备深度学习需要大量数据的支撑,搭建好的模型,通过大量的数据学习之后,才会拥有强大的泛化能力。模型对数据集的所有图片不停地学习,收敛到一定程度之后,输入一张全新的图片(不在数据集内),也会输出一个相对正确的结果。数据集包含的场景越多,背景越复杂,最终实现的效果会越好。数据集应该包含项目可能出现的所有情况,如光照、贴纸等不利干扰情况,都需要在数据集中出现。
但是对于我们单个具体项目而言,拍摄多个场景的物体是比较困难的,自己架设好摄像头,拍摄出来的背景也是比较单一的,难以满足丰富、复杂、随机的要求。
如上图自己制作的有害垃圾数据集,因为假设好了机械结构,背景非常单一。电池的种类也非常有限,无法将所有种类的电池都采购到。拍摄过多类似的图片,不仅无法满足数据集的要求,而且最终的模型精度也会受到较大影响。所以建议添加一些网上的现有数据集,或者通过爬虫等方式,来扩充数据集的复杂和随机程度,自己拍摄也可以故意制造一些特有场景。
以目标检测为例,理想情况下,包含单个物体的图片数要大于1500张,单个物体的出现次数要大于10000个,并且都需要进行标注。数据集 ...
Linux系统上常用软件集锦
[TOC]
概述文章参考:https://blog.csdn.net/weixin_45747759?spm=1010.2135.3001.5343
文章参考:https://github.com/Monday-Leo/Paddle_tutorial
文章参考:https://www.bilibili.com/video/BV18b4y1J7a6/
概述
首先check一下paddle是否安装完成
123456(paddle_py37) ➜ NyxPaddlePaddle git:(main) python 01_HelloPaddlePaddle.py Running verify PaddlePaddle program ... PaddlePaddle works well on 1 CPU.W0423 20:04:44.033320 234485248 fuse_all_reduce_op_pass.cc:76] Find all_reduce operators: 2. To make the speed faster, some all_reduce ops are ...
Linux系统上常用软件集锦
[TOC]
概述卷积是卷积神经网络中最常用的操作,卷积到底是如何运算的呢?
卷积(Convolution)
我们先从一维来看,如上图所示,有一个滑动的窗口从左到右,从上到下滑动,这个滑动的3*3的矩阵我们就称作卷积核,卷积核里面的数和输入矩阵的数字一一相乘后相加,就得到了一个新的数字,这些新的数字按从左到右、从上到下的顺序排列,就得到了输出矩阵,整个这个过程,我们就叫做卷积。
通过一维的卷积我们可以看到,输入的矩阵内的数字是固定的,输出矩阵的数字其实完全取决于卷积核内的数字,如果我想要输出正确的结果,只能通过修正卷积核。换句话来说,卷积核就是我们需要修正的参数,这一点希望大家能够明确。
对于图像来讲,我们看到的都是三通道的彩色图(RGB格式),也就是说最初的输入是一个3通道的矩阵,比如(3,640,640),对于多通道的矩阵,卷积操作也不难理解。
其实就是将一维的卷积重复了三次,有3个卷积窗口分别滑动得到了三个矩阵,最后将这三个矩阵内的数相加,得到了最后的输出。可以看到上图的输入shape为(3,5,5),卷积核的shape为(3,3,3),输出的shap ...
Linux系统上常用软件集锦
[TOC]
概述手写数字识别是计算机视觉的一个经典项目,因为手写数字的随机性,使用传统的计算机视觉技术难以找到数字共有特征。在计算机视觉发展的初期,手写数字识别成为一大难题。
从我们之前讲解的视觉任务分类来看,手写数字识别是典型的分类任务,输入一张图片进行十分类。在现实生活中,手写数字识别也有非常多的应用场景。如下图,我们看到的邮编的识别,可以极大地推动产业自动化,使用卷积神经网络实现的精度甚至可以超越人类。
本次任务就是想建立一个模型,输入一张手写数字的图片,就能输出一个正确的分类结果。通过这样的一个实战项目,可以很好地帮我们巩固和理解我们之前讲过的卷积、池化等常用操作,也可以温习一下深度学习的基本流程。
数据准备手写数字识别有通用的数据集MNIST,其中包含已经标注好的几万张手写数字,并且分好了训练集和评价集。如果我们对其中的一张图片进行可视化,可以看到这样的画面:
图像的shape为(1,28,28),是单通道图,图像的大小仅为28*28,它的标注为7。
通常对于一般项目来说,需要自己手写一个Dataloader来依次加载数据,返回图片和标注,供给训练的接口用 ...
Linux系统上常用软件集锦
[TOC]
概述概述Paddle-Lite 框架是 PaddleMobile 新一代架构,重点支持移动端推理预测,特点高性能、多硬件、轻量级 。支持PaddleFluid/TensorFlow/Caffe/ONNX模型的推理部署,目前已经支持 ARM CPU, Mali GPU, Adreno GPU, Huawei NPU 等多种硬件,正在逐步增加 X86 CPU, Nvidia GPU 等多款硬件,相关硬件性能业内领先。
硬件支持:https://paddlepaddle.github.io/Paddle-Lite/v2.2.0/support_hardware/
安装123pip install opencv-python -i https://pypi.douban.com/simplepython -m pip install paddlepaddle==2.3.1 -i https://mirror.baidu.com/pypi/simple
Linux系统上常用软件集锦
[TOC]
概述下载地址:https://github.com/PaddlePaddle/Paddle-Lite/releases/tag/v2.11
设置paddle-lite集成路径
1234567891011121314# paddle-liteif (USE_PADDLE_LITE) set(PADDLE_LITE_VERSION v2.11) set(PADDLE_LITE_DIR ${LIB_DIR}/paddle-lite/${PADDLE_LITE_VERSION}) set(PADDLE_LITE_INCLUDE_DIR ${PADDLE_LITE_DIR}/${TARGET_OS}-${TARGET_ARCH}/include/) set(PADDLE_LITE_LINK_DIR ${PADDLE_LITE_DIR}/${TARGET_OS}-${TARGET_ARCH}/lib/) ...
Linux系统上常用软件集锦
[TOC]
概述
Paddle-Lite特性
高性能实现(ARM、OpenCL平台)
轻量化部署
多硬件、多平台支持
轻量化部署:
数据对齐的。数据传话。
QNN开发框架简介
[TOC]
概述Qualcomm Neural Network,缩写为QNN,是高通技术公司(QTI)用于基于高通的芯片进行AI推理加速的一套软件架构。
QNN 架构旨在提供统一的 API 以及模块化和可扩展的加速器库,这些库构成了全栈 AI 解决方案的可重用基础,包括 QTI 自己的和第三方框架(如带有 QNN 图的 AI 软件堆栈所示)。
带有 QNN 的 AI 软件堆栈:
功能列表基于硬件加速器的模块QNN 架构采用模块化设计,允许在软件中为不同的硬件内核/加速器(如指定为后端的 CPU、GPU 和 DSP)进行清晰的分离。了解有关 QNN 后端的更多信息,可以参见:
跨 IP 核的统一 APIQNN 的主要亮点之一是它提供了一个统一的 API,用于委派跨所有硬件加速器后端的图创建和执行等操作。这使用户可以将QNN视为硬件抽象API,并轻松地将应用程序移植到不同的内核。
正确的抽象级别QNN API 经过充分抽象设计,以支持高效的执行模型,并在内部处理图形优化等功能。
QNN开发环境搭建
[TOC]
概述QNN的SDK下载环境搭建平台依赖QNN SDK所验证的主机操作系统是Ubuntu 18.04 LTS(Bionic)。
QNN SDK支持持python3
12$ sudo apt-get update$ sudo apt-get install python3=3.6.9
深度学习框架This QNN release is verified to work with versions of the ML training frameworks specified below:
Caffe: caffe_1.0.0-rc3 from the open-source tree at https://github.com/BVLC/caffe.
Caffe-SSD: A fork of the Caffe development tree available at https://github.com/weiliu89/caffe/tree/ssd.
Tensorflow: tf-1.15.0, or tf-2.3.0
TFLite: tflite-2.3.0 a ...