
机器学习+深度学习
文章平均质量分 90
入门案例
代码缝合怪
科研工作者,联系邮箱:3011889142@qq.com
展开
-
基于NSGA-II的深度迁移学习
迁移学习是一种机器学习技术,它允许一个预训练的模型被用作起点,在此基础上进行微调以适应新的任务或数据。其核心思想是利用从一个任务中学到的知识来帮助解决另一个相关的任务,即使这两个任务的数据分布不完全相同。这种方法可以加速学习过程,提高模型性能,并减少对新数据标注的依赖。原创 2024-02-04 22:31:18 · 1670 阅读 · 0 评论 -
【自制C++深度学习框架】表达式层的设计思路
我们定义了一个名为 ExpressionLayer 的类,继承自 Layer 类,用于将输入的表达式字符串解析为后缀表达式,并对给定的张量进行基于后缀表达式的计算。其中:ExpressionLayer 的构造函数接受一个字符串表达式 statement,创建一个 ExpressionParser 对象。ExpressionLayer 的 Forward() 函数是重写 Layer 接口的纯虚函数,输入参数为一个浮点数类型的张量列表 inputs,输出参数为一个浮点数类型的张量列表 outputs。原创 2023-06-04 20:00:15 · 974 阅读 · 0 评论 -
【自制C++深度学习推理框架】卷积层的设计思路
由于ConvolutionLayer是带参数的,因此可通过继承ParamLayer类,定义ConvolutionLayer类来实现卷积层。具体来说:构造函数:定义了卷积层的一些基本参数,包括输出通道数 output_channel、输入通道数 in_channel、卷积核大小 kernel_h 和 kernel_w、padding_h 和 padding_w、stride_h 和 stride_w、group数 groups 和是否使用偏置 use_bias。通过该函数初始化了类成员变量。原创 2023-06-04 16:01:41 · 737 阅读 · 0 评论 -
【自制C++深度学习推理框架】计算图的设计思路
Operator(操作符)Inputs: std::vector,输入操作数Outputs: std::vector,输出操作数Type: std::string,运算符的类型Name: std::string,运算符的名称Params: std::map,存放运算符的所有参数,例如卷积运算的stride, padding, kernel sizeAttrs: std::map,存放运算符所需的具体权重属性,例如卷积的权重w和偏移量b。原创 2023-05-26 22:28:02 · 1243 阅读 · 0 评论 -
【自制C++深度学习推理框架】ReLU层的设计思路
由于ReLU是不带参数的,因此可通过继承Layer类,定义ReluLayer类来实现ReLU激活函数的神经网络层。具体来说,该类包括以下几个成员函数:构造函数,用于创建一个ReluLayer对象,并设置该层的名称为"Relu"。,重载虚函数Forward(),实现输入tensor的元素作用ReLU函数后输出tensor的功能。,该静态函数为工厂方法,用于生成一个ReluLayer对象,并保存在relu_layer中。原创 2023-05-26 22:25:40 · 443 阅读 · 0 评论 -
【自制C++深度学习推理框架】Layer的设计思路
在神经网络中,不同的层具有不同的结构和运算方式,因此需要不同的函数来实现它们。使用虚函数的方法可以将这些不同的函数封装到一个基类中,并通过多态机制来实现不同类型的层的动态绑定。具体来说,当使用基类指针或引用调用虚函数时,程序会根据对象的动态类型(即实际指向的派生类类型)来选择相应的函数实现。这就使得不同类型的层可以通过共同的接口进行调用,从而提高了代码的可维护性和可扩展性。此外,使用虚函数还可以方便地定义抽象类,即只声明虚函数但不提供实现的类。原创 2023-05-26 22:24:20 · 1033 阅读 · 0 评论 -
【自制C++深度学习推理框架】Tensor模板类的设计思路
Tensor是一个模板类,支持float类型的数据。Tensor类支持创建张量、访问和修改张量元素,以及一些查询张量属性的功能。其中还实现了对Tensor对象的复制构造函数、移动构造函数、赋值运算符和移动赋值运算符,并在内部使用了Armadillo线性代数库来存储和操作数据。原创 2023-05-21 23:07:36 · 871 阅读 · 0 评论 -
【自制C++深度学习框架】前言
此GitHub项目是一个初学者的深度学习框架,使用C++编写,旨在为用户提供一种简单、易于理解的深度学习实现方式。以下是本项目的主要特点和功能:计算图:使用计算图来描述深度学习模型的计算过程,利用计算图将神经网络的计算过程视为一个有向无环图。通过构建计算图,可以将深度学习模型转化为一系列的计算节点,通过节点之间的连接来表达模型的计算逻辑,使得计算过程可视化并易于维护和优化。张量:使用Tensor类封装张量,支持float类型数据,并提供了访问张量属性和元素的接口以及一些查询、修改张量属性的函数。原创 2023-06-04 20:46:43 · 1712 阅读 · 0 评论 -
【6s965-fall2022】神经架构搜索 Neural Architecture Search
在很长一段时间里,研究人员都是手动设计神经网络的架构。神经网络架构的设计空间非常大,它包括。因此,手动调整这些参数非常困难。而NAS,可以帮助研究人员在多种效率和精度指标限制下,自动调整这些参数。因此,在本文,我们学习OFA,这种方法可以大大降低为不同设备专门设计NN架构的成本。原创 2023-02-07 17:40:05 · 1214 阅读 · 0 评论 -
【6s965-fall2022】量化 Quantization Ⅱ
我们可以把训练好的模型中的所有层都进行线性量化,替换为线性向量化的全连接层和卷积层,从而实现了把模型中的浮点运算替换成整型运算。原创 2023-02-03 17:54:53 · 837 阅读 · 0 评论 -
【6s965-fall2022】量化 Quantization Ⅰ
从广义上讲,量化是将连续信号变成离散信号的过程;它在信号处理(以离散的时间间隔采样)和图像压缩(减少每个像素的可能颜色空间)中很常见。在这门课中,我们将量化定义为将输入从一个连续的、大范围的数值集约束为一个离散的、小范围的数值集的过程。量化的过程包括将每个权重的数据类型改为限制性更强的数据类型(即可以用更少的比特表示)。常用的量化方法有:基于K-Means的权重量化(K-Means Based Weight Quantization)和线性量化(Linear Quantization)。原创 2023-02-01 20:26:06 · 692 阅读 · 0 评论 -
【6s965-fall2022】剪枝✂pruningⅡ
将通道权重从重要到不重要进行排序,然后保留每层中最重要的。对于每个输入的通道,使用Frobenius规范来计算。根据上图进行敏感度分析,设定每一层的稀疏度。问题:我们应该如何找到每层的剪枝比率?在上一篇的基础上,实现敏感度扫描记录。问题:哪些层的冗余度最高?对所有层使用一样的剪枝比例。通道修剪后,权重张量。原创 2023-01-20 20:11:38 · 897 阅读 · 0 评论 -
【6s965-fall2022】剪枝✂pruningⅠ
修剪,消除不必要的知识。DNN的知识可以理解为存在于其权重中。事实证明,许多 DNN 模型可以被分解为权重张量,而权重张量经常包含统计冗余(稀疏性)。因此,你可以压缩 DNN 的权重张量,从而缩小 DNN 的存储、数据传输和执行时间以及能耗成本。想想看,这就像把每个 DNN 张量放入一个 “压缩文件”,它需要的比特数比原始文件少。然而,压缩后的权重张量仍然需要在模型推理时用于计算,所以我们需要找到一个适合高效计算的压缩方案。许多压缩技术的工作原理是从权重张量中去除多余的零值。原创 2023-01-19 20:09:19 · 830 阅读 · 0 评论 -
【6s965-fall2022】深度学习的效率指标
了解并实现深度学习的效率指标,为模型剪枝做准备。MACs、model size、number of parameters原创 2023-01-18 21:25:38 · 1032 阅读 · 1 评论 -
基于小波分析与深度学习的脑电信号分类(matlab)
通过小波变换对运动想象信号进行特征提取,生成时频图像作为卷积神经网络的输入。原创 2022-09-26 00:04:28 · 4650 阅读 · 10 评论 -
基于逻辑回归(Logistic Regression)的糖尿病视网膜病变(Diabetic Retinopathy)检测
该模型采用机器学习中逻辑回归的方式,训练Diabetic Retinopathy Debrecen Data Set的数据集,获得模型参数,建立预测模型,可以有效针对DR疾病做出预测和分类。原创 2022-01-22 11:14:21 · 3387 阅读 · 1 评论 -
TensorFlow安装注意事项
安装教程:win10详细安装步骤:https://www.cnblogs.com/ming-4/p/11516728.htmlhttps://blog.youkuaiyun.com/u010210864/article/details/94580873一定要在anaconda prompt下安装TensorFlowAMD显卡的,安装TensorFlow-CPU版本的pip install --ignore-installed --upgrade tensorflowconda常用命令检查目前原创 2020-10-23 23:30:23 · 226 阅读 · 0 评论