- 博客(129)
- 收藏
- 关注
原创 模型剪枝综述
剪枝算法对模型精度的影响取决于多种因素,包括模型结构和复杂度、剪枝比例和策略、微调方法和程度等。实际应用中要权衡压缩率和精度关系,不断试验优化,找到适合特定模型和任务的剪枝方案,保证精度下实现有效模型压缩。
2024-07-30 17:17:36
1656
原创 面试:CUDA Tiling 和 CPU tiling 技术详解
Tiling(平铺)是一种将大的问题或数据集分解为较小的子问题或子数据集的技术,目的是提高数据局部性和缓存利用率,从而提升程序性能。(一)技术原理在 CUDA 编程中,常见的优化策略包括利用共享内存和循环分块。共享内存可被一个线程块内的所有线程访问,循环分块则将大循环分解为小循环,减少内存访问冲突,提高内存访问局部性。例如在矩阵乘法中,可将其分解为多个子矩阵乘法,然后用多个线程块并行计算,最后合并结果。CPU Tiling。
2024-07-30 15:19:34
1340
原创 模型部署优化综述
对 Inception V3 模型的实验显示,稀疏性为 50%时性能几乎不变,87.5%时分类指标下降 2%,证明模型剪枝有效且必要,关键是找到冗余参数进行剪枝。Dropout 和 DropConnect 是经典的类似技术,如 Dropout 随机将神经元输出置零,DropConnect 随机将神经元连接置零,但因仅在训练中操作且不影响最终模型,未被视为模型剪枝技术。滤波器剪枝只改变滤波器组和特征通道数目,无需专门算法,属结构化剪枝,还有对整个网络层的剪枝,可视为滤波器剪枝的变种。核剪枝:去除某个卷积核。
2024-07-29 17:57:10
315
原创 面试题:为什么 一般 weight 选择对称量化,activation 选择非对称量化?
为什么 一般 weight 选择对称量化,activation 选择非对称量化?
2024-07-28 10:25:48
1073
原创 AI+HPC 部署优化面试范围分享
C/C++、多态、模板、引用、智能指针、STL、内存管理等,会持续深入,甚至会让实现一些比如:解决循环引用、智能指针的实现。AI的基础知识,整体的训练的流程、算子的计算对比、深度学习的基本知识,pytorch等框架,网络结构,目前流行的网络结构、transformer、YoLo系列、LLMs、BEV、GPTs、BERTs等。
2024-07-20 22:33:39
1320
原创 Pytorch深度学习实践笔记12(b站刘二大人)
用于处理一些具有前后关系的序列问题。循环神经网络(Recurrent Neural Network, RNN)是一类以序列数据为输入,在序列的演进方向进行递归且所有节点(循环单元)按链式连接的递归神经网络。常见的循环神经网络包括双向循环神经网络(Bidirectional RNN, Bi-RNN)和长短期记忆网络(Long Short-Term Memory networks,LSTM)。循环神经网络的真正形式是左边这种,但是也常表现为右边这种,一般隐藏层初始状态为0,当输入x1后,计算出下一个状态h1,
2024-05-28 15:25:30
1290
原创 Pytorch深度学习实践笔记11(b站刘二大人)
(1)用来对通道数进行降维或升维,保持Feature Map长宽不变,减少计算量(2)实现跨通道信息的融合(3)可以保持输入和输出网络结构不变的同时,融合特征
2024-05-27 22:42:38
521
1
原创 Pytorch深度学习实践笔记10(b站刘二大人)
CNN,用于特征提取,但是计算量大,卷积算子是一个计算密集型算子,工业界优化卷积算子是一个重大的任务。有LeNet、AlexNet、VGG系列、ResNet、很多深度学习框架都提供了丰富的CNN模型实现个训练的接口。
2024-05-27 22:40:28
1186
原创 Pytorch深度学习实践笔记9(b站刘二大人)
one-hot 编码用于将离散的分类标签转换为二进制向量,关键是离散的分类和二进制向量。多分类问题利用Softmax实现,SoftMax 可以用来做分类,输出属于某个类别的概率
2024-05-27 16:56:34
837
7
原创 Pytorch深度学习实践笔记8(b站刘二大人)
batch_size=4表示每次取四个数据shuffle= True表示开启数据集随机重排,即每次取完数据之后,打乱剩余数据的顺序,然后再进行下一次取num_workers=0表示在主进程中加载数据而不使用任何额外的子进程,如果大于0,表示开启多个进程,进程越多,处理数据的速度越快,但是会使电脑性能下降,占用更多的内存drop_last=False表示不丢弃最后一个批次,假设我数据集有10个数据,我的batch_size=3,即每
2024-05-27 16:52:29
1179
原创 Pytorch深度学习实践笔记7(b站刘二大人)
上述实验,我使用Adam前期可以比较迅速的收敛,使得loss收敛迅速,并且没有过拟合,一般Adam由于其特性出现过拟合的概率比SGD高。我用SGD优化器训练,训练了100万次才勉强达到Adam的1万次结果,由此可以看出Adam的收敛速度比SGD快很多,但是由于SGD的噪声比较大,而且其每次计算一个梯度或者一小批量的梯度,使得泛化能力强,适应于大型数据的训练中。
2024-05-27 11:29:30
1150
原创 Pytorch深度学习实践笔记6(b站刘二大人)
softmax就是将一些大的数字拉伸到0~1之间,而且使得大的数所占的比例更大,小的数所占的比例更小,这样如果每一个原始的数据代表score的话,将其总分控制在0~1之间,可以进一步使用交叉熵函数来计算loss。 sigmoid
2024-05-26 13:31:07
1117
原创 Pytorch深度学习实践笔记5(b站刘二大人)
使用Pytorch实现,步骤如下:PyTorch Fashion(风格) prepare dataset design model using Class ,前向传播,计算y_pred Construct loss and optimizer,计算loss,Optimizer 更新w Training cycle (forward,backward,update)
2024-05-26 01:00:36
1057
原创 Pytorch深度学习实践笔记4(b站刘二大人)
Back propagation (BP),训练神经网络的目标是优化代价函数cost,使得cost找到以一个全局或者局部最优值。让cost尽可能的接近0,这样得到的weights和bias是最好的,由于需要不断的调整参数让cost收敛,cost在梯度的相反反向下降最快,所以提出了BP算法,就是来计算weights和bias的梯度(偏导数的,加速训练时的收敛速度,避免无效的训练。
2024-05-24 19:06:21
1082
原创 Pytorch深度学习实践笔记3(b站刘二大人)
mini-batch GD采取了一个折中的方法,每次选取一定数目(mini-batch)的样本组成一个小批量样本,然后用这个小批量来更新梯度,这样不仅可以减少计算成本,还可以提高算法稳定性。
2024-05-24 15:11:51
1485
原创 Pytorch深度学习实践笔记2(b站刘二大人)
监督学习(supervised learning):打标签的数据无监督学习:无标注数据,模型自己去学习数据的特征,输出参数,然后推理输出
2024-05-24 15:07:33
1191
原创 Pytorch深度学习实践笔记1(b站刘二大人)
多层感知机(MLPs):输入层、隐藏层、输出层构成输入层:接收数据隐藏层:通过学习特征,forward,loss,激活函数,bp、优化器更新参数输出层:输出满足一定训练后的参数、weights 和bias反向传播:Back Propagation (链式求导法则,比较简单)
2024-05-24 14:58:09
935
原创 性能优化(CPU优化技术)ARM Neon 详解
NEON是指适用于Arm Cortex-A系列处理器的一种高级SIMD(单指令多数据)扩展指令集。NEON 技术可加速多媒体和信号处理算法(如视频编码/解码、2D/3D 图形、游戏、音频和语音处理、图像处理技术、电话和声音合成)。Single Instruction Multiple Data (SIMD)顾名思义就是“一条指令处理多个数据(一般是以2为底的指数数量)”的并行处理技术
2024-03-19 14:28:41
1970
原创 性能优化(CPU优化技术)-NEON指令详解
ARM NEON 是 ARM 平台下的 SIMD 指令集,利用好这些指令可以使程序获得很大的速度提升。不过对很多人来说,直接利用汇编指令优化代码难度较大,这时就可以利用 ARM NEON intrinsic 指令,它是底层汇编指令的封装,不需要用户考虑底层寄存器的分配,但同时又可以达到原始汇编指令的性能。
2024-03-19 14:22:16
5670
原创 ISP技术综述
ISP是Image Signal Processor 的简称,也就是图像信号处理器。DSP是Digital Signal Processor 的缩写,也就是数字信号处理器。ISP一般用来处理Image Sensor(图像传感器)的输出数据,如做AEC(自动曝光控制)、AGC(自动增益控制)、AWB(自动白平衡)、色彩校正、Lens Shading、Gamma 校正、祛除坏点、Auto Black Level、Auto White Level等等功能的处理。
2024-03-19 09:41:19
6852
原创 高斯函数详解
高斯函数广泛应用于统计学领域,用于表述正态分布,在信号处理领域,用于定义高斯滤波器,在图像处理领域,二维高斯核函数常用于高斯模糊Gaussian Blur,在数学领域,主要是用于解决热力方程和扩散方程,以及定义Weiertrass Transform。
2024-03-17 22:57:36
10258
原创 CUDA Profiling的安装配置使用(nvvp nvprof nsight)
nvpp nprof nsight的安装配置使用,在Ubuntu18上
2024-03-13 00:41:05
1627
原创 JDK8和JDK11在Ubuntu18上切换(解决nvvp启动报错)
在Ubuntu 18.04上切换JDK 8和JDK 11,可以通过更新update-alternatives工具配置的链接,这是解决nvvp启动报错的关键
2024-03-12 16:56:01
961
原创 CUDA入门之统一内存
借助 CUDA 6,NVIDIA 引入了 CUDA 平台历史上最引人注目的编程模型改进之一,即统一内存。在当今典型的 PC 或集群节点中,CPU 和 GPU 的内存在物理上是不同的,并由 PCI-Express 总线分开。在 CUDA 6 之前,程序员就是这样看待事物的。CPU 和 GPU 之间共享的数据必须在两个内存中分配,并由程序在它们之间显式复制。这给 CUDA 程序增加了很多复杂性。
2024-03-11 17:10:05
1245
原创 CUDA基本入门教程
GPU并不是一个独立运行的计算平台,而需要与CPU协同工作,可以看成是CPU的协处理器,因此当我们在说GPU并行计算时,其实是指的基于CPU+GPU的异构计算架构。在异构计算架构中,GPU与CPU通过PCIe总线连接在一起来协同工作,CPU所在位置称为为主机端(host),而GPU所在位置称为设备端(device)
2024-03-10 23:25:05
2605
原创 ISP基础概述
ISP (Image Signal Processor),即图像处理,主要作用是对前端图像传感器输出的信号做后期处理,主要功能有线性纠正、噪声去除、坏点去除、内插、白平衡、自动曝光控制等,依赖于ISP才能在不同的光学条件下都能较好的还原现场细节。
2024-03-07 14:27:37
1766
原创 Intel CPU体系结构
几乎所有的冯·诺伊曼型计算机的 CPU,其工作都可以分为 5 个阶段:取指令、指令译码、执行指令、访存取数、结果写回。
2024-03-06 23:10:23
1790
原创 计算机体系结构:VLIW
VLIW是将多条互相独立的指令,通过软件(编译器)的方式打包(Pack)在一起,我们将打包好的多条指令,称为instruction bundle。取指模块根据打包好的指令,送入各自独立的功能部件,并行执行
2024-03-06 22:25:12
2218
1
ARM Neon 整体介绍
2024-01-03
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人