
机器学习
文章平均质量分 92
哦豁灬
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
树莓派 NCNN 部署 yolov5(fp32/fp16)
github 项目仓库:https://github.com/Taot-chen/raspberrypi_dl。原创 2025-04-08 09:46:45 · 3958 阅读 · 0 评论 -
NPU 硬件架构及张量技术开发
这里以 V853 芯片内置 NPU 为对象学习 NPU 架构。这个 NPU,其处理性能为最大 1 TOPS 并切带有 128KB 内部高速缓存用于高速数据交换,支持 OpenCL、OpenVX、android NN 与 ONNX 的 API 调用,同时也支持导入大量常用的深度学习模型。原创 2025-04-02 09:15:00 · 3842 阅读 · 0 评论 -
LLM 优化技术(1)——Scaled-Dot-Product-Attention(SDPA)
在 Transformer 中抛弃了传统的 CNN 和 RNN,整个网络结构完全由和组成。一个基于 Transformer 的可训练的神经网络可以通过堆叠 Transformer 的形式进行搭建,论文中通过搭建编码器(encoder)和解码器(decoder)各 6 层,总共 12 层的,并在机器翻译中取得了 BLEU 值的新高。这里先之看这个接口。原创 2025-03-28 19:06:37 · 4127 阅读 · 0 评论 -
DeepSpeed 训练推理压缩实践
在 DeepSpeed 的分布式训练中,通常只需要在一台服务器上运行启动脚本。NCCL 主要用于多 GPU 和多节点(即分布式)环境中的深度学习训练,以加速跨多个 GPU 或多个计算节点的数据交换。在深度学习训练过程中,特别是在使用数据并行和模型并行策略时,NCCL 可以显著提高通信效率,加速训练过程。通过这种方式,主节点会自动在所有参与的服务器上启动训练进程,并协调它们之间的通信和数据同步。通常情况下,只需要在主服务器上运行启动脚本,并确保主机列表文件中的第一台服务器是希望作为主服务器的机器即可。原创 2025-03-27 12:07:27 · 2615 阅读 · 0 评论 -
树莓派基于mobilenet_v2自训练手语识别模型
随机灰度化是为了在训练过程中,有一定的概率将图像转换为灰度图,这可以帮助我们的模型更好地泛化。])Resize:将图像调整到指定的高度和宽度。RandomGrayscale:以一定的概率将图像转换为灰度图。ToTensor:将图像数据转换为PyTorch的Tensor格式Normalize:对图像进行标准化处理,使数据分布在[-1, 1]之间])对于验证数据加载器,不需要随机灰度化。print("类别名称:", class_names)print("加载已有模型继续训练")原创 2024-10-25 14:13:42 · 2182 阅读 · 0 评论 -
pytorch 源码阅读(3)——torch.fx
FX 是一个供开发者用来转换 nn.Module 实例的工具包。符号跟踪器(symbolic_traced)中间表示(intermediate representation,IR)和Python 代码生成(Code generation)。"""graph():""""""add = None"""符号跟踪器对 Python 代码执行符号执行。它将称为代理的虚假值馈送到代码中。记录对这些代理的操作。中间表示是符号跟踪期间记录的操作的容器。原创 2024-07-26 23:18:32 · 2751 阅读 · 0 评论 -
奇异值分解(SVD)时间复杂度分析与优化
奇异值分解是一种矩阵分解的方法,大学线性代数里面也讲过奇异值分解的方法,因此这是一个为大家所熟知的算法。原创 2024-07-26 23:15:18 · 5549 阅读 · 1 评论 -
奇异值分解(SVD)原理
0 引子奇异值分解(singular value decomposition,SVD)是一种矩阵因子分解方法,是线性代数的概念。在机器学习中,矩阵分解是常用的手段,作为矩阵分解的经典方法SVD,不仅是经典的数学问题,在工程应用中许多地方也都有它的身影。SVD被广泛应用在推荐系统、图像处理等领域,是一种数据降维的经典方法。许多数学对象可以通过将它们分解成多个组成部分或者找到它们的一些属性来更好地理解,这些属性是通用的,而不是由我们选择它们的方式所产生的。对应地,我们也可以通过分解矩阵来发现矩阵表示成数组元原创 2024-07-20 14:23:31 · 5047 阅读 · 0 评论 -
yolov5 上手
YOLO(You Only Look Once)是一种流行的物体检测和图像分割模型,由华盛顿大学的约瑟夫-雷德蒙(Joseph Redmon)和阿里-法哈迪(Ali Farhadi)开发。YOLO 于 2015 年推出,因其高速度和高精确度而迅速受到欢迎。YOLOv5 在 YOLOv4 的基础上进一步提高了模型的性能,并增加了超参数优化、集成实验跟踪和自动导出为常用导出格式等新功能。原创 2024-07-15 23:55:01 · 2419 阅读 · 0 评论 -
神经网络基本原理
下面是一个包含三个层次的神经网络。红色的是输入层,绿色的是输出层,紫色的是中间层(也叫隐藏层)。输入层有3个输入单元,隐藏层有4个单元,输出层有2个单元。设计一个神经网络时,输入层与输出层的节点数往往是固定的,中间层则可以自由指定;神经网络结构图中的拓扑与箭头代表着推理过程时数据的流向,跟训练时的数据流有一定的区别;结构图里的关键不是圆圈(代表“神经元”),而是连接线(代表“神经元”之间的连接)。每个连接线对应一个不同的权重(其值称为权值 tensor),这是需要训练得到的。原创 2024-02-05 01:59:22 · 4146 阅读 · 3 评论 -
深度学习预备知识2——数据预处理
Python中常用的数据分析工具中,通常使用pandas软件包。像庞大的Python生态系统中的许多其他扩展包一样,pandas可以与张量兼容。原创 2024-02-05 01:51:51 · 2082 阅读 · 0 评论 -
深度学习预备知识1——数据操作
所有机器学习方法都涉及从数据中提取信息,因此需要一些关于数据的实用技能,包括存储、操作和预处理数据。机器学习通常需要处理大型数据集。线性代数和矩阵是计算大量数据的有力工具,需要一些矩阵运算相关的线性代数知识。深度学习是关于优化的学习。对于一个带有参数的模型,我们想要找到其中能拟合数据的最好模型。在算法的每个步骤中,决定以何种方式调整参数需要一点微积分知识。(autograd包会自动计算微分)机器学习还涉及如何做出预测:给定观察到的信息,某些未知属性可能的值是多少?因此需要一些统计与概率论相关的知识。原创 2024-02-04 23:20:51 · 2116 阅读 · 0 评论 -
深度学习介绍
对于具备完善业务逻辑的任务,大多数情况下,正常的人都可以给出一个符合业务逻辑的应用程序。即使是顶级程序员也无难以提出完美的解决方案, 原因可能各不相同。有时任务可能遵循一种随着时间推移而变化的模式,我们需要程序来自动调整。有时任务内的关系可能太复杂(比如像素和抽象类别之间的关系),需要数千或数百万次的计算。即使人类的眼睛能毫不费力地完成这些难以提出完美解决方案的任务,这其中的计算也超出了人类意识理解范畴。机器学习(machine learning,ML)是一类强大的可以从经验中学习的技术。原创 2024-02-04 23:19:53 · 3218 阅读 · 0 评论 -
地平线旭日 X3 开发板上手体验
最近嫖到一块旭日X3开发板,借此熟悉地平线 AI 芯片旭日 X3 模型部署流程,以及算法工具链。这里基本是跟着进行操作,其中也遇到一些奇怪的问题。原创 2024-01-19 02:09:33 · 4378 阅读 · 0 评论 -
在 Linux 本地部署 stable diffusion
由于工作站安装的是 ubuntu,卡也在上面,就只能在 ubuntu 上部署安装 stable diffusion 了。另外,Linux 上使用 stable diffusion 也会方便很多。原创 2024-01-16 03:10:49 · 4002 阅读 · 0 评论 -
修改和调试 onnx 模型
在用 API 对 ONNX 模型进行操作之前,我们还需要先了解一下 ONNX 的结构定义规则,学习一下 ONNX 在 Protobuf 定义文件里是怎样描述一个神经网络的。回想一下,神经网络本质上是一个计算图。计算图的节点是算子,边是参与运算的张量。而通过可视化 ONNX 模型,我们知道 ONNX 记录了所有算子节点的属性信息,并把参与运算的张量信息存储在算子节点的输入输出信息中。原创 2024-01-16 03:06:59 · 3375 阅读 · 0 评论 -
在 pytorch 中支持更多的 onnx 算子
首先,需要获得asinh推理接口的输入参数定义。在和这两个文件中搜索相应的算子名称(一般来说 ATen 中的函数名称都是全小写,因此在搜索算子名的时候尽量忽略大小写这两个文件是编译 PyTorch 时本地自动生成的文件,里面包含了 ATen 算子的 PyTorch 调用接口。搜索结果,def asinh定义在文件中。onnx 没有支持的 onnx 算子,需要自定义该 onnx 算子。g.op()函数可以用来自定义 onnx 算子的函数。对于 onnx 官方支持的算子,使用g.op()原创 2024-01-04 20:59:42 · 3271 阅读 · 0 评论 -
pytorch 转 onnx
ONNX 是目前模型部署中最重要的中间表示之一,在把 PyTorch 模型转换成 ONNX 模型时,使用的 torch 接口是这里记录了 pytorch 模型转 onnx 时的原理和注意事项,还包括部分 PyTorch 与 ONNX 的算子对应关系。原创 2024-01-02 20:23:36 · 3107 阅读 · 1 评论 -
搭建个人深度学习工作站(捡垃圾)
频繁切换 python 和一些包的版本,容易造成包版本冲突的问题,conda 可以给每个配置建立一个虚拟的python环境,在需要的时候可以随时切换,而不需要的时候也能删除不浪费磁盘资源。docker 可以理解为一个轻量化的虚拟环境,与服务器的本地环境隔离,可以在宿主服务器上新建很多个这种被称为容器的虚拟机,然后在里面配置我们的开发环境,且这些配置好的环境是可以打包成镜像的,方便随时做分享和重用。然后按照前面的方法重新安装显卡驱动,安装好了之后开始安装CUDA,如果没有安装过 cuda,可以不卸载。原创 2024-01-02 00:52:53 · 4719 阅读 · 4 评论 -
预训练模型下载和使用
这也是为什么下载的时候,一定要保证这些名称是这几个,不能变。使用的基本原理也非常简单,from_pretrained的参数pretrained_model_name_or_path,可以接受的参数有几种,short-cut name(缩写名称,类似于gpt2这种)、identifier name(类似于microsoft/DialoGPT-small这种)、文件夹、文件。对于short-cut name或identifier name,这种情况下,本地有文件,可以使用本地的,本地没有文件,则下载。原创 2023-12-29 13:38:45 · 3722 阅读 · 0 评论 -
激活函数 activate function
ReLU,Recitified Linear Unit,线性整流函数,常见的是 ReLU 和 Leaky ReLU。通常意义下,线性整流函数指代数学中的斜坡函数。GELU,Gaussian Error Linear Unit,高斯误差线性单元。ReLU 可以对抗梯度爆炸 / 消失的问题,相对而言计算效率也很高。越大的时候,就越有可能被保留,越小就越有可能被置零。激活函数近似是往负无穷大方向走,逐渐趋近。激活函数,决定神经网络是否传递信息的开关。往正无穷大的方向走,逐渐趋近。原创 2023-12-24 01:33:21 · 2350 阅读 · 0 评论