当前位置: 首页 > news >正文

eIQ笔记(UI介绍+Loss曲线+OpenART例程)

This is a very beginner-friendly article  ^o^

目录

🍂一、训练器设置

input size:

learning rate:

learning rate decay:

Epochs:

Decay Rate:

Linear Decay:

Batch Size:

Epochs to Train:

QAT(Quantization Aware Training)量化感知训练:

Pruning剪枝:

Clustering聚类:

🍂二、关于图像增强的设置

🍂三、模型参数

Alpha权重更新比率:

Optimizer优化器:

🍂四、推荐的设置(简单的模型)

eIQ的小bug

🍂五、分析Loss曲线

①概念

训练集Loss曲线

测试集Loss曲线

②分析

③放弃模型

🍂六、eIQ的其他常用UI介绍

🍂七、OpenART的部署例程

1、常用的方法

像素设置

模型加载

畸变校正

模型应用

加载标签

2、多目标检测中存在的问题

🍂八、尝试使用云端进行在线训练

🔚九、结语


值得一看的文件(有详细的参数讲解,包括nvida的cuda配置方法):

EIQ 工具包用户指南 - NXP (readkong.com)第21页起

第十七届智能车竞赛智能视觉组eIQ教程--逐飞科技 (qq.com)

成功安装后文件夹自带文件:eIQ_Toolkit——>docs——>eIQ_Toolkit_UG.pdf

🍂一、训练器设置

input size:

指输入到模型的尺寸,以(高度,宽度,通道数)的形式表示,模型在训练时所有图像要调整到一致的大小

选择的Input Size要与数据集的图片大小相近

learning rate:

指在每次迭代更新模型参数时,调整权重的步长大小。高学习率:参数更新步长较大,收敛速度快,可能导致错过最优解或训练过程不稳定;低学习率:参数更新步长较小,更可能找到全局最优解,但训练过程慢,可能会陷入局部最优解

learning rate decay:

学习率衰减目的是在训练初期保持较高的学习率,以加快收敛速度,在后期降低学习率,从而使模型能逼近全局最优解

Epochs:

设置调整学习率的轮数


Decay Rate:

决定学习率衰减速度的快慢,Decay Rate越大学习率下降越快,在指数衰减时:新学习率=初学习率 * e^( - decay rate * epoch )

Linear Decay:

学习率按线性规律减少

Batch Size:

设置处理样本的数量。对于有许多非常相似的图像的数据集来说,较大的批次更有可能更快地达到较高的准确率。对于较小的数据集和图像不相似的数据集,较小的批次规模可能会更快达到较高的准确率。

Epochs to Train:

整个数据集被处理的次数(可理解为模型对整个数据集进行一次全面学习),如果数据集大小为10000个样本,批次大小batch size为100,那么一次epoch包含100次Iteration(每处理一批数据的次数)。多个Epochs:单次遍历数据集不足以让模型充分学习到数据的特征,通过多个Epochs模型能不断调整参数,逼近最佳权重值;过多Epochs可能导致过拟合:过拟合指模型在训练数据上表现很好,但在新数据(测试集)上表现较差

通过增加该值(整个训练数据集中的训练次数),模型权重有更多机会学习到需要提取的重要特征。如果使用过多的epochs,训练可能会导致模型过度拟合训练数据集

QAT(Quantization Aware Training)量化感知训练:

指将模型参数和计算从浮点(32-bit)降低精度到整型(8-bit),使模型简化,计算速度快,但精度下降

Pruning剪枝:

移除模型中不重要的权重、神经元或整个过滤器,以减少模型大小和计算量

Clustering聚类:

将相似的权重值聚集在一起共享权重,从而减少模型参数

🍂二、关于图像增强的设置

见开头链接,官方说明更加详细

垂直翻转谨慎选择(若不会出现就不选择)

🍂三、模型参数

Alpha权重更新比率:

Alpha 是一个乘数,会影响模型各层滤波器的数量

Optimizer优化器:

优化器是一种数学公式,应用于权重时,可以在尽可能少的调整中找到最佳权重。可使用以下优化器(Adam、Nadam 和 Adamax常用):

  1. 随机梯度下降(Stochastic Gradient Descent, SGD)

    • SGD是一种优化算法,通过在每次迭代中只使用一个样本或一小批样本来更新模型的权重,从而快速训练模型。当模型远离理想状态时,SGD能够迅速调整权重。
  2. Adagrad

    • Adagrad在计算权重调整方向时与SGD类似,但它在调整权重时考虑了之前所有更新的累积大小,这意味着它会自动调整学习率,对于频繁更新的权重,其学习率会减小。
  3. Adadelta

    • Adadelta是Adagrad的扩展,它只保留过去一定数量的更新历史,而不是全部。这使得算法更加高效,并且能够适应不断变化的优化景观。
  4. 均方根传播(Root Mean Square Propagation, RMSprop)

    • RMSprop在计算权重调整方向时与SGD类似,但它对每个权重参数分别进行调整,有助于减少在单一轴上的振荡。在几乎所有情况下,RMSprop的表现都优于Adagrad和SGD。
  5. 自适应移动估计(Adaptive Movement Estimation, Adam)

    • Adam结合了Adagrad和RMSprop的优点,通过累积过去调整的平均值来评估下一次调整。在几乎所有情况下,Adam的表现都优于SGD和Adagrad,而在大多数情况下优于RMSprop。它结合了Adagrad的快速梯度下降和RMSprop的振荡抑制学习率。
  6. Adamax

    • Adamax是Adam优化器的泛化版本,使用无穷范数。模型越简单(参数越少),这个优化器越精确。在小模型中,Adamax的表现可能优于Adam,而在大型模型中,Adamax和Adam的表现相似,因此可以作为可选的替代方案。
  7. Nesterov-加速自适应移动估计(Nesterov-accelerated Adaptive Movement Estimation, Nadam)

    • Nadam结合了Adam优化器和Nesterov加速梯度技术,这使得下一次调整的计算似乎是在当前调整趋势再继续一步的情况下进行的。

经验之谈:如果发现使用Adam收敛速度过快,担心陷入局部最优解,不妨试试SGD吧 !!!

相关文章:

eIQ笔记(UI介绍+Loss曲线+OpenART例程)

This is a very beginner-friendly article ^o^ 目录 🍂一、训练器设置 input size: learning rate: learning rate decay: Epochs: Decay Rate: Linear Decay: Batch Size: Epochs to Train: QAT(Quantization Aware Training)量化感知训练: Pruning剪枝…...

微信小程序——消息订阅

首先用到的就是wx.requestSubscribeMessage接口。 注意:用户发生点击行为或者发起支付回调后,才可以调起订阅消息界面 requestSubscribeMessage() {uni.requestSubscribeMessage({tmplIds: [],//需要订阅的消息模板的id的集合,一次调用最多可…...

网络原理(传输层)->TCP协议解

前言 大家好!我是小帅,今天我们来学习TCP协议,个人主页 文章目录 1. TCP协议2. TCP的核心机制2.1TCP核心机制一:确认应答2.2 TCP核心机制二:超时重传2.3 TCP核心机制三:连接管理2.4 TCP核心机制四&#xf…...

oracle imp和exp 导入不同库的用户和表空间

参考: oracle 导入(imp)数据时的表空间(tablespace users)问题_imp tablespace-CSDN博客 网上的解决办法大概都是这种,但是实际测试19c数据库并不能成功,所以最后采取在导出文件上强行修改表空间的办法,改完后再继续执行导出导入…...

滚珠丝杆的精度级别如何分?

滚珠丝杆是一种常见的线性传动装置,广泛应用于各种机械设备和自动化系统中。滚珠丝杆的精度等级划分是评估其传动精度和运动平稳度的重要标准,滚珠丝杆的精度级别划分主要基于传动中实际移动距离与理想移动距离的偏差,偏差越小,精…...

ComfyUI初体验

ComfyUI 我就不过多介绍了,安装和基础使用可以看下面大佬的视频,感觉自己靠图文描述的效果不一定好,大家看视频比较方便。 ComfyUI全球爆红,AI绘画进入“工作流时代”?做最好懂的Comfy UI入门教程:Stable D…...

DPI-C动态库so的使用

文章目录 前言一、方法介绍二、demo演示2.1 文件准备2.2 执行仿真2.3 仿真结果 总结 前言 在做IC验证EDA仿真过程中,有时候需要调用C实现的参考模块,我们可以利用DPI-C的功能,实现SV侧调用C侧的函数。 在具体实现过程中,我们可以…...

Java避坑案例 - 高并发场景下的分布式缓存策略

文章目录 概述缓存常见问题及解决方案把 Redis 当作数据库常用的数据淘汰策略如何选择合适的驱逐算法 缓存雪崩问题复现解决方案 缓存击穿(热点缓存失效)问题复现解决方案 缓存穿透问题复现解决方案缓存穿透 vs 缓存击穿 缓存与数据库的一致性先更新缓存…...

Python中的字符串修剪:strip()、lstrip() 和 rstrip()

Python中的字符串修剪 Python 中的字符串修剪:strip()、lstrip() 和 rstrip()strip()lstrip()rstrip()应用场景结论 Python 中的字符串修剪:strip()、lstrip() 和 rstrip() 在 Python 开发中,我们经常需要处理字符串,其中一项常见…...

K8S配置storage-class

简介 Kubernetes支持NFS存储,需要安装nfs-subdir-external-provisioner,它是一个存储资源自动调配器,它可将现有的NFS服务器通过持久卷声明来支持Kubernetes持久卷的动态分配。该组件是对Kubernetes NFS-Client Provisioner的扩展&#xff0…...

多线程——线程池

目录 前言 一、什么是线程池 1.引入线程池的原因 2.线程池的介绍 二、标准库中的线程池 1.构造方法 2.方法参数 (1)corePoolSize 与 maximumPoolSize (2)keepAliveTime 与 unit (3)workQueue&am…...

VScode插件:前端每日一题

大文件上传如何做断点续传? 在前端实现大文件上传的断点续传,通常会将文件切片并分块上传,记录每块的上传状态,以便在中断或失败时只上传未完成的部分。以下是实现断点续传的主要步骤和思路: 1. 文件切片 (File Slici…...

Android跨进程通信

1、跨进程通信的几种方式 在 Android 中,跨进程通信 (IPC, Inter-Process Communication) 方式有多种,主要用于在不同的应用或进程之间传递数据。常见的跨进程通信方式包括: AIDL (Android Interface Definition Language) • 描述&#xff…...

【初阶数据结构】计数排序 :感受非比较排序的魅力

文章目录 前言1. 什么是计数排序?2. 计数排序的算法思路2.1 绝对位置和相对位置2.2 根据计数数组的信息来确认 3. 计数排序的代码4. 算法分析5. 计数排序的优缺点6.计数排序的应用场景 前言 如果大家仔细思考的话,可能会发现这么一个问题。我们学的七大…...

前后双差速轮之LQR控制

在之前的代码中,我们实现了前后两对双差速轮AGV的运动学正解和逆解。但为了实现对AGV的精确路径跟踪和姿态控制,我们需要引入控制算法。线性二次型调节器(LQR)是一种常用的最优控制方法,可以有效地将系统的状态误差最小化。本文将详细说明如何在之前的C++代码中加入LQR控制…...

Linux之远程连接服务器

1、远程连接服务器简介 (1)什么是远程连接服务器 远程连接服务器通过文字或图形接口方式来远程登录系统,让你在远程终端前登录linux主机以取得可操作主机接口(shell),而登录后的操作感觉就像是坐在系统前面…...

k8s 部署 nexus3 详解

创建命名空间 nexus3-namespace.yaml apiVersion: v1 kind: Namespace metadata:name: nexus-ns创建pv&pvc nexus3-pv-pvc.yaml apiVersion: v1 kind: PersistentVolume metadata:name: nfs-pvnamespace: nexus-ns spec:capacity:storage: 3GiaccessModes:- ReadWriteM…...

从“摸黑”到“透视”:AORO A23热成像防爆手机如何改变工业检测?

在工业检测领域,传统的检测手段常因效率低下、精度不足和潜在的安全风险而受到诟病。随着科技的不断进步,一种新兴的检测技术——红外热成像技术,正逐渐在该领域崭露头角。近期,小编对一款集成红外热成像技术的AORO A23防爆手机进…...

让你的 IDEA 使用更流畅 | IDEA内存修改

随着idea使用越来越频繁,笔者最近发现使用过程中有时候会出现卡顿现象,例如,启动软件变慢,打开项目的速度变慢等: 因此如果各位朋友觉得最近也遇到了同样的困惑,不妨跟着笔者一起来设置IDEA的内存大小吧~ …...

docker run 命令解析

docker run 命令解析 docker run 命令用于从给定的镜像启动一个新的容器。这个命令可以包含许多选项,下面是一些常用的选项: -d:后台运行容器,并返回容器ID;-i:以交互模式运行容器,通常与 -t …...

linux之kylin系统nginx的安装

一、nginx的作用 1.可做高性能的web服务器 直接处理静态资源(HTML/CSS/图片等),响应速度远超传统服务器类似apache支持高并发连接 2.反向代理服务器 隐藏后端服务器IP地址,提高安全性 3.负载均衡服务器 支持多种策略分发流量…...

基于服务器使用 apt 安装、配置 Nginx

🧾 一、查看可安装的 Nginx 版本 首先,你可以运行以下命令查看可用版本: apt-cache madison nginx-core输出示例: nginx-core | 1.18.0-6ubuntu14.6 | http://archive.ubuntu.com/ubuntu focal-updates/main amd64 Packages ng…...

linux arm系统烧录

1、打开瑞芯微程序 2、按住linux arm 的 recover按键 插入电源 3、当瑞芯微检测到有设备 4、松开recover按键 5、选择升级固件 6、点击固件选择本地刷机的linux arm 镜像 7、点击升级 (忘了有没有这步了 估计有) 刷机程序 和 镜像 就不提供了。要刷的时…...

Redis数据倾斜问题解决

Redis 数据倾斜问题解析与解决方案 什么是 Redis 数据倾斜 Redis 数据倾斜指的是在 Redis 集群中,部分节点存储的数据量或访问量远高于其他节点,导致这些节点负载过高,影响整体性能。 数据倾斜的主要表现 部分节点内存使用率远高于其他节…...

CVE-2020-17519源码分析与漏洞复现(Flink 任意文件读取)

漏洞概览 漏洞名称:Apache Flink REST API 任意文件读取漏洞CVE编号:CVE-2020-17519CVSS评分:7.5影响版本:Apache Flink 1.11.0、1.11.1、1.11.2修复版本:≥ 1.11.3 或 ≥ 1.12.0漏洞类型:路径遍历&#x…...

解决:Android studio 编译后报错\app\src\main\cpp\CMakeLists.txt‘ to exist

现象: android studio报错: [CXX1409] D:\GitLab\xxxxx\app.cxx\Debug\3f3w4y1i\arm64-v8a\android_gradle_build.json : expected buildFiles file ‘D:\GitLab\xxxxx\app\src\main\cpp\CMakeLists.txt’ to exist 解决: 不要动CMakeLists.…...

用鸿蒙HarmonyOS5实现中国象棋小游戏的过程

下面是一个基于鸿蒙OS (HarmonyOS) 的中国象棋小游戏的实现代码。这个实现使用Java语言和鸿蒙的Ability框架。 1. 项目结构 /src/main/java/com/example/chinesechess/├── MainAbilitySlice.java // 主界面逻辑├── ChessView.java // 游戏视图和逻辑├──…...

stm32wle5 lpuart DMA数据不接收

配置波特率9600时,需要使用外部低速晶振...

C++实现分布式网络通信框架RPC(2)——rpc发布端

有了上篇文章的项目的基本知识的了解,现在我们就开始构建项目。 目录 一、构建工程目录 二、本地服务发布成RPC服务 2.1理解RPC发布 2.2实现 三、Mprpc框架的基础类设计 3.1框架的初始化类 MprpcApplication 代码实现 3.2读取配置文件类 MprpcConfig 代码实现…...

智能职业发展系统:AI驱动的职业规划平台技术解析

智能职业发展系统:AI驱动的职业规划平台技术解析 引言:数字时代的职业革命 在当今瞬息万变的就业市场中,传统的职业规划方法已无法满足个人和企业的需求。据统计,全球每年有超过2亿人面临职业转型困境,而企业也因此遭…...