
机器学习
文章平均质量分 75
程序员萌芽
夜半荧屏映月华,
指尖飞舞写天涯。
代码千行凝智慧,
bug除尽见朝霞。
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
【matlab】KMeans KMeans++实现手写数字聚类
将物理或抽象对象的集合分成由类似特征组成的多个类的过程称为对于给定N个n维向量x1,…,xN∈Rn,聚类的目标就是将这N个n维向量分成k个集合,尽量使得同一个集合中的向量彼此接近,如图2所示。图2 聚类示意效果图首先初始化聚类中心,如图3所示。图3 k-means初始聚类中心然后计算每个点到k个聚类中心的聚类,并将其分配到最近的聚类中心所在的聚类中,重新计算每个聚类现在的质心,并以其作为新的聚类中心,如图4所示。图4 k-means迭代1次。原创 2023-11-12 19:02:31 · 2359 阅读 · 0 评论 -
magic number 幻数
一些通信协议或数据格式规定,数据的开始部分包含特定的幻数,以确保数据正确接收或解析。通过读取文件的幻数,程序可以判断文件的类型,并采取相应的解析或处理方式。例如,JPEG图片文件的幻数为FF D8 FF,而PDF文件的幻数为25 50 44 46。通过使用特定的幻数作为条件判断,程序可以执行不同的操作或处理流程。为了提高代码的可读性,应该将幻数定义为具有意义的常量,并使用有描述性的名称。在计算机编程领域,幻数(Magic Number)是指在文件或数据中用来识别其文件格式、数据类型或特定属性的固定值。原创 2023-07-20 20:42:42 · 956 阅读 · 0 评论 -
pytorch的序列化
通过序列化张量,可以将计算得到的结果或者需要保存的数据存储起来,以便后续使用,而无需重新进行计算。需要注意的是,PyTorch的序列化只保存了模型的状态(参数和结构)或张量的值和相关信息,而不包括优化器的状态、计算图等其他附加信息。PyTorch是一个基于Python的开源机器学习框架,序列化是指将模型、张量或其他Python对象转换为一种可存储的格式,以便于在后续的时间点进行加载、重用或共享。①模型的序列化:PyTorch允许将整个模型保存到磁盘上,以便在需要时重新加载模型。①pickle序列化。原创 2023-07-19 14:40:20 · 431 阅读 · 0 评论 -
protobuf (Protocol Buffers)
通过使用.proto文件定义数据结构和消息规范,并生成相应的代码,我们可以轻松地在不同的平台和系统之间传输和存储结构化数据。这样一来,我们就可以使用生成的代码来读取和写入与.proto文件相匹配的数据。在上面的例子中,我们定义了一个名为Person的消息类型,它包含一个字符串类型的name字段、一个32位整数类型的age字段和一个重复的字符串类型的hobbies字段。:Protobuf生成的二进制数据非常紧凑,相比于使用文本格式(如JSON或XML),序列化和反序列化的速度更快,占用更少的存储空间。原创 2023-07-19 15:41:47 · 528 阅读 · 0 评论 -
MLIR (Multi-Level Intermediate Representation)
首先,MLIR 的多级表示使得编译器更加灵活和可扩展,可以应对不同的编程模型和硬件架构。最后,MLIR 的标准化操作符和类型系统简化了编译器开发的复杂性,提高了代码的可读性和可维护性。MLIR 的核心思想是使用标准化的、可组合的操作符来表达计算,这些操作符可以以层次化的方式逐步转换到更低级别的表示。总之,MLIR 是一个通用的、可扩展的编译器基础设施,通过引入多级中间表示来解决传统编译器所面临的挑战。它的设计理念和丰富的功能可以帮助开发者构建高效、灵活的编译器,适应不同的编程语言和硬件平台需求。原创 2023-07-19 15:49:40 · 871 阅读 · 0 评论 -
blob (Binary Large Object)
需要注意的是,由于BLOB文件存储的是二进制数据,因此在加载权重时需要确保模型结构与保存权重的模型结构完全匹配,以免出现错误。在深度学习中,二进制大对象(Binary Large Object,BLOB)通常指的是存储模型权重或预训练模型的文件。在深度学习中,模型的权重是模型在训练过程中学习到的参数。②加载模型权重:在需要使用已训练好的模型时,可以使用深度学习框架提供的函数或工具从BLOB文件中加载模型的权重。总结而言,在深度学习中,BLOB指的是存储模型权重或预训练模型的二进制文件。原创 2023-07-20 20:51:31 · 424 阅读 · 0 评论 -
深度学习中的计算图和图优化
在前向传播中,输入数据通过网络,沿着图的边逐层传递,经过一系列计算和激活函数处理,最终得到输出结果。在反向传播中,通过计算图的反向路径,根据损失函数对输出结果进行求导,将梯度沿着图的边传回到每个节点,从而实现参数的优化和更新。通过自动微分技术,可以自动生成计算图中各个节点的梯度计算代码,并进行优化,提高梯度计算的效率。深度学习中的图优化是指对计算图进行优化,以提高模型的计算效率和性能。①图剪枝(Graph Pruning):图剪枝技术主要用于移除计算图中不必要的计算节点和边,以减少计算量。原创 2023-07-19 15:23:49 · 2098 阅读 · 1 评论 -
机器学习之深度神经网络
卷积神经网络(Convolutional Neural Network,CNN)和全连接神经网络(Fully Connected Neural Network,FCN)都是深度学习领域中常见的神经网络模型。下面是二者的比较。①都是前馈神经网络模型,由多个神经元构成。②都可以通过反向传播算法进行训练,优化网络参数以达到最小化损失函数的目的。③都可以使用多层堆叠的方式来构建深度网络,提高模型的表达能力。④都可以处理各种类型的数据,如图像、语音、文本、时间序列等。原创 2023-06-27 13:20:02 · 2261 阅读 · 0 评论 -
Keras-深度学习-神经网络-人脸识别模型
①导入所需的库,导入了 Keras 和其他必要的库,用于构建和处理图像数据。②加载人脸数据并进行处理,并将其划分为训练集和测试集。每个人的图像按顺序排列,训练集包含每个人前6张图像,测试集包含剩余的图像。每个图像都被转换为像素值列表,并与相应的标签一起存储。③将数据变为四维张量并归一化,图像数据需要转换为四维张量,维度是(样本数,图像高度,图像宽度,通道数)。此处将图像数据的通道数设置为1,表示灰度图像。然后对图像数据进行归一化处理,将像素值缩放到0到1之间。原创 2023-06-27 13:11:33 · 1958 阅读 · 0 评论 -
Keras-深度学习-神经网络-电影评论情感分析模型
使用到的数据集为IMDB电影评论情感分类数据集,该数据集包含 50,000 条电影评论,其中 25,000 条用于训练,25,000 条用于测试。每条评论被标记为正面或负面情感,因此该数据集是一个二分类问题。①导入所需的库。②通过调用函数加载 IMDB 电影评论数据集,并将其拆分为训练集和测试集,其中num_words参数指定了词汇表的大小,只选择出现频率最高的前 10000 个单词。③使用函数对训练集和测试集中的序列进行填充,使它们具有相同的长度。原创 2023-06-27 13:14:27 · 2135 阅读 · 0 评论 -
机器学习之K-means聚类算法
K-means聚类算法是一种无监督的学习方法,通过对样本数据进行分组来发现数据内在的结构。K-means的基本思想是将n个实例分成k个簇,使得同一簇内数据相似度高而不同簇之间数据相似度低。原创 2023-06-26 23:06:01 · 1143 阅读 · 0 评论 -
机器学习之SVM支持向量机
支持向量机(Support Vector Machine,SVM)是一种二分类模型,其基本思想是在特征空间中找到一个最优的超平面,使得正负样本点到该超平面的距离最大化,从而实现对样本的分类。原创 2023-06-26 14:26:00 · 2416 阅读 · 0 评论 -
机器学习之线性回归算法
这里使用了线性回归的梯度下降法更新公式。具体而言,对于待预测点,LWLR会给予距离该点较近的训练样本较高的权重,而对于距离该点较远的样本,则赋予较低的权重甚至可以忽略。局部加权线性回归(Locally Weighted Linear Regression,LWLR)是一种非参数的回归方法,它在进行预测时使用了局部加权的策略,根据样本的相似度为每个数据点赋予不同的权重。在线性回归中,当存在多个特征时,可能会出现过拟合(overfitting)的问题,即模型在训练数据上表现良好,但在新样本上的泛化能力较差。原创 2023-06-26 00:10:34 · 1343 阅读 · 3 评论 -
机器学习之基于LDA的人脸识别
fisherface和LDA人脸识别原创 2023-06-25 15:53:48 · 1288 阅读 · 0 评论 -
机器学习之LDA算法
线性判别分析(linear discriminant analysis,LDA),是一种经典的线性学习方法,其原理是:给定训练样例集,设法将样例投影到一条直线上,使得同类样例的投影点尽可能接近,异类样例的投影点尽可能远离;在对新样本进行分类时,将其投影到同样的直线上,再根据投影点的位置来确定新样本的类别。LDA作为一种经典的机器学习算法,具有较好的降维效果和分类能力,同时对噪声具有一定的抗干扰能力。然而,LDA也有其局限性,适用于满足其假设条件的线性可分问题。原创 2023-06-25 15:54:28 · 4649 阅读 · 0 评论 -
机器学习之基于PCA的人脸识别
基于PCA的人脸降维、人脸识别、人脸重构和人脸可视化原创 2023-06-25 13:28:52 · 2904 阅读 · 0 评论 -
机器学习之PCA算法
在机器学习中,我们通常面临的问题是,数据集包含大量特征,而这些特征之间可能存在冗余或相关性。这导致了两个问题:一是难以可视化和理解数据,二是可能会影响模型的性能和效率。PCA的目标就是通过线性变换将高维数据映射到低维空间,同时保持数据的主要信息。总结一下,PCA是一种常用的降维技术,通过线性变换将高维数据映射到低维空间,保留了主要信息,同时去除了冗余和相关性。PCA,即主成分分析(Principal Component Analysis),是一种常用的降维技术,用于从高维数据中提取最重要的特征。原创 2023-06-25 13:29:41 · 2485 阅读 · 0 评论 -
Keras-深度学习-神经网络-手写数字识别模型
在这个过程中,需要将每个图像转换为28x28的矩阵,并添加额外的一维来表示颜色通道。同时,由于图像数据的大小范围可能不同,进行归一化可以使所有的图像数据都落在[0,1]之间。然后使用load_data()函数将MNIST数据集加载到程序中,并将数据集分为训练集和测试集,其中x_train、y_train为训练集,x_test、y_test为测试集。同时,可以设置分批次训练和训练的轮数等参数,verbose可用于决定是否显示训练过程。在训练结束后,输出模型在测试集上的准确率,并记录总的时间消耗。原创 2023-06-14 14:32:44 · 3130 阅读 · 0 评论 -
图灵机 X+1 C语言
碎碎念念首先把它变成二进制,由于在原码上变换,所以正负分开算,负数就最高位放1,然后减一,正数直接加一。8位 代码可算:-127~127#include<stdio.h>void output(int num[])//输出函数 { int i; for(i=0;i<8;i++) printf("%d",num[i]); printf("\n"); }void minus(int number)//负数操作 { int i=8,num[8]; numb原创 2022-02-20 16:30:10 · 1646 阅读 · 0 评论 -
基于主成分分析PCA的人脸识别
目录主成分分析PCA基于PCA的人脸识别算法matlab代码主成分分析PCA主成分分析(Principal Component Analysis,简称PCA)是最常用的一种降维方法。PCA的主要目的是找到一个超平面(直线的高维推广)对所有样本数据进行表达,让样本点到这个超平面的距离足够近(最近重构性),以及让样本点在这个超平面上的投影能尽可能地分开(最大可分性),目的是在用低维的数据量表达高维的数据量的同时尽可能地保留原数据的特征。PCA的主要思想是将n维特征映射到k维的空.原创 2022-02-17 09:27:06 · 4657 阅读 · 3 评论 -
机器学习之空间滤波器
非线性平滑滤波器(统计排序滤波器)就是将滤波器区域像素的值进行各种排序,然后选择最大值、最小值、中值等填入中间的像素,所以这些平滑滤波器又叫最大值滤波器,最小值滤波器,中值滤波器,其中中值滤波器是使用最广泛的统计排序滤波器。从中我们可以看出,邻域的大小与平滑的效果直接相关,领域越大平滑的效果越好(朦胧感),但邻域过大,平滑会使边缘信息损失的越大,从而使输出的图像变得模糊。平滑滤波可以将图像模糊处理,即加强低频成分,减弱高频成分,而锐化滤波可以突出图像的细节,减弱低频成分,加强高频成分。原创 2022-02-16 18:35:23 · 4585 阅读 · 0 评论