AI算法构成
Dataset Model Train Infer Deploy
解耦:
模型训练过程中保存的模型文件是包含前向预测和反向传播的过程,
在实际的工业部署则不需要反向传播,因此需要将模型进行导成部署需要的模型格式
配置化: 配置都会包含三个主要内容:数据配置、网络模型、训练策略
Model :
神经网络算法时需要设置两种网络模式: .train( )模式和.eval( )模式
Train
01.model.train()和model.eval()对应的功能
fine-tuning,即训练好的模型继续调优,只是在已有的模型做小的改动,本质上仍然是训练(Training)的过程
eval()时,pytorch会自动把BN和DropOut固定住,不会取平均,而是用训练好的值
dropout和BN层(以dropout为例)。这项技术在训练中随机去除神经元
model.eval()是保证BN层直接利用之前训练阶段得到的均值和方差,即测试过程中要保证BN层的均值和方差不变;
对于Dropout,model.eval()是利用到了所有网络连接,即不进行随机舍弃神经元。
在eval模式下不会进行反向传播
with torch.no_grad()则主要是用于停止autograd模块的工作,以起到加速和节省显存的作用
eval模式不会影响各层的gradient计算行为,即gradient计算和存储与training模式一样,只是不进行反向传播(back probagation)
02.model.train()和model.eval()对应的源代码
Infer
推断(Inference)的网络权值已经固定下来,无后向传播过程,
参数空间
异同:
经典概率分布(例如泊松分布、高斯分布等)
线性回顾
一个参数--》 两个参数--参数的取值 一元线性回归模型中参数估计的最小二乘法
以自变量为横轴,以损失函数的取值为纵轴
神经网络
以训练的epoch为横轴,以损失函数的取值为纵轴
参数空间 parameter space
全微分 (The Total Differential)
偏微分中的链式法则 (Chain Rule) 偏导数用于评估每个变量相对于其他变量作为常量时的变化情况
偏导数是针对多变量函数而言的,它通过将多变量函数退化成一元函数分别求各自的导数
偏导数是函数沿着某个坐标轴方向的导数,任一方向呢
意方向的方向导数为偏导数的线性组合,系数为该方向的单位向量。当该方向与坐标轴正方向一致时,方向导数即偏导数。
方向导数 (Directional Derivatives)
梯度 (Gradient),或grad
ϕ为∇f(a,b)与u向量的夹角,显然夹角为0时,方向导数最大,最大值为梯度的模。
当ϕ=π即u与梯度∇f(a,b)反向时,方向导数取得最小值,最小值为梯度模的相反数
梯度的模是最大方向导数的值 垂直于这个向量的方向梯度
梯度指的就是各个偏导数构成的向量,写作∇f,二元时为(∂z/∂x,∂z/∂y),多元时为(∂z/∂x,∂z/∂y,…)
给定函数 f 的梯度(通常用∇f表示)可以解释为一个向量所有偏导数的集合。
场可以分为三种:数量场,比如温度场,密度场;向量场,比如重力场,速度场;张量场:应力场,变形速率场。
梯度 散度(divergence) 旋度
autograd 自动求梯度来实现
模型定义--损失函数-损失函数优化 J(θ) --学习率
eg: 似然函数最大化来求解我们需要的模型系数θ
链式法则可以把最后一层的误差一层一层的输出到中间层的权值上去,从而得到中间层的梯度信息,由梯度信息可以很好地更新权值,从而达到最优化的效果。
dy/dx = dy/du * du/dx,借助中间变量求得导数
功能
工具链-平台-系统-生态
打通数据链/工具链
对应的平台
Dataset: 数据采集平台 数据标注平台 数据管理平台 (数据采集-数据传输-数据存储-数据管理-数据预处理-数据送标-数据验收-数据交付)
标注平台: 标注工具-标注需求-标注文档 --标注团队 标注商务--闭环数据系统 数据质量管理
模型差异筛选 数据粒度管理 数据内容检索
model : 开发平台、代码管理平台、
train: 算法训练平台-数据评测-算力管理 --迭代 框架支持
infer: 测试平台 仿真平台 场景库
deploy: 算法库 模型库 版本管理 异构硬件 部署平台
service: 运营-监管 -合规-数据交换-算法升级 -车辆日志 功能 性能 安全 高可靠性 车队管理平台
对应组件:
端:边缘端 车端 路端
管:通信 网联设备
云:端
时空
同一时间和同一空间,能量和物质的相遇
###时间同步
主动干扰 被动干扰
空间干扰--太阳风暴
半遮蔽--建筑物
全遮蔽--地下停车场-隧道
时间同步一位置改写 --时间跳变
控制延迟 应对不同场景的方案选择 数据-管理-外部时间源 系统时钟--外部时间源
###传感器的时间
全面曝光
行曝光--
Triger相同时间--即使同步触发,时间也会出现差异
曝光时长和增益设置--应对外部光照条件不同和变化的应对方式
BusyBox
BusyBox 将许多具有共性的小版本的UNIX工具结合到一个单一的可执行文件
工具nc来实现将证据外传至服务器
通过file命令查看程序基本信息,发现该程序未被stripped
ioctl函数 ioctl(input/output control)是一个专用于设备输入输出操作的系统调用,该调用传入一个跟设备有关的请求码,系统调用的功能完全取决于请求码
攻击链路 攻击手法和植入的样本
BusyBox是GNU Coreutils的优秀替代品,尤其是当操作系统的小尺寸很重要的时候
BusyBox 被称为瑞士军刀工具,它是 GNU shellutils、fileutils 和 coreutils 中 shell 实用程序的简单替代
ArchLinux / Fedora /RHEL / CentOS / Rocky / AlmaLinux 系统
01.首先下载 BusyBox 64 位二进制文件
02.重命名并chmod 命令为其分配执行权限
03. BusyBox shell 中,需要在命令前加上 busybox 关键字,语法如下:
$ busybox command
eg:busybox --list | wc -l
参考
https://busybox.net/downloads/
标签:导数,AI,梯度,平台,--,Pytorch,参数,eval,model
From: https://www.cnblogs.com/ytwang/p/17522529.html