- 博客(44)
- 收藏
- 关注
原创 基于SEBlock+ResNet的通道注意力机制人脸表情识别
首先来介绍下ResNet 残差网络随着硬件部件计算能力的提升和CNN的广泛应用,出现了大量的网络结 构,同时网络的深度也越来越深。研究表明,增加网络的深度能够显著提高网 络的训练效果。而批量归一化(BN)操作则通过调节网络中每个层上的数据分布,进行网络的优化操作,从而提高网络的学习效率和稳定性。在实际应用过程中,随着网络的不断训练,网络损失会不断降低,直到达到预设目标。然而,如果对网络深度不断进行增加,反而会造成更大的损失。
2025-02-22 01:25:44
773
原创 基于AlexNet改进的多尺寸卷积网络人脸表情识别_Fer2013_JAFFE
通过全局平均池化,可以将特 征图中的所有特征的值进行统一处理,获得的各个特征均值可以直接对应 Softmax 层的分类概率,获得的数据数量也与分类数目相同。通过引 入焦点参数,交叉熵损失函数可以有效地减少容易被分类的样本的权重,从而 提升稀有样本的权重,这将大大提升网络在特征学习中对于复杂样本的处理能 力。在多尺寸卷积过程中,为了保证 卷积核卷积前后的尺寸不变以及方便卷积锚点(卷积核基准置的确定,将 卷积核尺寸设置为卷积操作中常见的 1*1 、样化的卷积操作,一个卷积层中生成多个卷积通道。
2025-02-21 01:45:04
746
原创 基于AlexNet的人脸表情识别_JAFFE
为了适应别的训练集,所以在预处理部分先将图像转为灰度,然后为了加强对比度使用直方图均衡化,然后为了适应模型的输入,重新扩展为RGB三通道图片,最后为了适应AlexNet模型输入,对图像中心裁剪 227*227,同时要对图像进行标准化。它包含了日本女性在不同表情下的面部图像,是研究面部表情识别的常用基准数据集之一。接下来就是一些训练的参数的确定,损失函数我们使用交叉熵损失函数,优化器使用Adam。的性能超过了所有的传统机器学习模型,开启了 深度学习在计算机视觉领域中的应用。结构的神经网络模型,由。
2025-02-21 00:03:01
561
1
原创 个性化推荐系统(电影)_pytorch实现(完整代码)(三)
到这边推荐系统的后端代码基本已经搞定了,当然可以继续在此基础上修改(比如模型的调整,推荐方式等),要实现一个完整的系统,一个图形化前端界面是必不可少的,先欠着,打算用Django 弄一个 web页面来当前端,后续有空再更新在文章开头的百度网盘链接里有 poster 每个电影的海报图片,需要可自取当然如果有大佬用我的模型,自己写了前端的话,乐意之至,记得标注出处,然后@我来看看,┭┮﹏┭┮欢迎点击作者主页查看其余部分,遇到任何问题欢迎私信我。
2025-02-02 14:50:42
994
2
原创 个性化推荐系统(电影)_pytorch实现(完整代码)(一)
首先,先来介绍一下模型整体流程。我们的模型就是要大致完成上述过程,将直观的user和movie 信息,通过模型,转换成一个特征向量,举个例子就是下面这样:这个是说明userId 1,usergender F,userage "Under 18"(1表示小于18岁,这个是数据集的规定,后面会说明)useroccupation “K-12 student”(10表示的是K12 学生,这个是数据集的规定,后面会说明),zipcode 48067我们希望通过模型将这些信息变成特征向量的形式。
2025-02-02 01:23:35
1333
原创 读《Understanding Deep Learning》
最近在读Simon教授的《Understanding Deep Learning》,记录下感兴趣的points,比较零散。emm没怎么看懂,好像是在讨论模型维度和输入输出个数之间的关系?反正就是输入输出越多,模型参数就越复杂,maybe!就是在目标相同的情况下,网络的宽度和高度成反比,总之就是模型的参数要达到一定的量级。在足够的隐单元下,浅层神经网络可以以任意精度描述紧子集上的任意连续函数。如果要浅层网络达到和深层网络一致的效果,那就得增加浅层网络的某层维数。网络层数(网络深度),某层的维度(网络宽度)
2025-01-01 16:46:41
291
1
原创 循环神经网络-pytorch搭建-IMDb影评数据集(完整代码文末)
关键在于f-1和f-2这两个函数,f-1利用的是sigmoid函数,介于0-1之间,这样矩阵元素相乘的时候会抹掉那些为0的元素,相对于选择性遗忘了部分记忆,由此 f-1也常被称作遗忘门,过滤重要特征,忽视无关信息。首先是按顺序读取每个标签,然后利用前面得到的索引,将每个单词具体的转化成50维的向量。接下来,就是编写训练函数,需要确定批次大小,和迭代次数,采用交叉熵损失函数,隐藏层数量定为128,使用Adam优化,后续的写法就比较常规,每各100次打印一次损失,记录训练过程的损失和准确率。
2024-06-25 23:36:33
1885
1
原创 求解二项分布概率
某人进行射击,及每次命中的概率为0.1,独立射击50次,求击中10次以上且40次以下的概率。本题实际是考虑如何使用python进行计算二项分布概率。由于计算也不是很复杂,自己也可以写函数实现,scipy库中也有对应函数可以调用。p: 实验成功的概率。
2024-06-25 23:24:26
444
原创 卷积神经网络-pytorch搭建-CIFAR-10数据集测试(完整代码文末)
基于公开的CIFAR-10图像分类数据集上的图像分类问题,构建包含卷积层,激活函数,池化层和全连接层的卷积神经网络,通过尝试应用不同的优化器和调整超参数,记录模型在训练集和验证集上的性能对比等实验结果。编写训练函数,和测试函数,以SGD(随机梯度下降)为优化器,交叉熵为损失函数,设置好训练轮次,确定批次数量大小,适时打印数据,查看训练进度,做出可视化。定义train_model函数,用于模型训练,传入定义的模型,训练数据集,测试数据集(每个轮次后都测试下准确率),损失函数,优化器,训练轮次。
2024-06-25 23:15:17
1981
原创 前馈神经网络-pytorch搭建-MINIST数据集测试(完整代码在文末)
基于公开的MNIST手写数字数据上的分类问题,构建一个包含至少一个隐藏层的前馈神经网络,其中包括选择适当的激活函数和损失函数实现训练模型,并记录训练过程中损失和准确率等实验结果。进一步分析原因,问题或许是出现在激活函数上,由于最后手写数字识别本质上是个多分类的问题,所以在最后一层的10个输出上,使用Softmax函数才是最佳选择,这样更改过之后,准确率就达到了97.48%在最初我只使用了一层的隐藏层,得到的准确率只有67.58%,这是由于模型的深度不够,在数字识别这种高维问题上,表现不佳。
2024-06-25 23:11:06
1885
原创 深度学习(拟合问题,梯度,激活函数,神经网络【前馈,卷积,循环】,优化器),一些简单的QA+自我理解
深度学习的参数的组织方式是一层一层的(比如神经网络每层神经元的权值w),传统的机器学习的参数可能往往是一种线性的组织形式(比如y=kx+b中的k),参数的组织形式表现出来的是深度学习是以概念层次结构来理解世界的,所以这也可能是高维复杂非线性问题上深度学习的表现碾压传统机器学习的原因之一。关键在于f-1和f-2这两个函数,f-1利用的是sigmoid函数,介于0-1之间,这样矩阵元素相乘的时候会抹掉那些为0的元素,相对于选择性遗忘了部分记忆,由此 f-1也常被称作遗忘门,过滤重要特征,忽视无关信息。
2024-06-25 22:54:59
1119
1
原创 解微分方程绘制图形
中的一个解常微分方程的函数,其主要功能是求解形如 y’ = f(y, t) 的常微分方程。使用Odeint函数时,需要将微分方程的函数定义出来。通常,将该函数定义成一个Python函数,并将该函数中的参数设置为因变量y和自变量x。求微分方程 xy’+ y – exp(x) = 0,在初始条件y(1) = 2 exp下的特解,并画出解函数的图形。其余参数都有默认值,不必要。推广使用二阶微分方程时,注意方法。func:微分方程函数。
2024-04-18 08:37:50
600
原创 求解三重积分
求解三重积分∫(-0.5,1)∫(0,0.5)∫(-0.5pi,pi)(y sinx exp(x)+z cosx x2)dxdydz.integrate.dblquad(f, a, b, c, d) # 二重积分。integrate.tplquad(f, a, b, c, d) # 三重积分。f是具体函数,a,b,c,d是范围。integrate.trapz(f, a, b) # 离散点积分。integrate.quad(f, a, b) # 一重积分。
2024-04-18 08:36:25
427
原创 生活消费函数拟合
numpy库有自带的拟合函数可以调用,这再一次体现了python强大体现在库资源的丰富,具体的库名称,函数调用我们要熟悉,但是不用死记硬背,需要使用的时候能去使用就好。统计自己过去12个月实际生活花费的数值,并拟合成一条一次、二次、三次曲线,三条曲线分别用不同颜色和线型展示在同一张图里。拟合函数实际上是一种机器学习,使用sklearn库有更加专业的方法可供调用。
2024-04-18 08:35:14
265
原创 函数图形插值绘制
对于函数f(x) = (x2-5x+3)exp(-4x)cosx, x = 0: 0.1:1,进行三种方式插值,并将插值曲线与原曲线绘制在同一个Figure窗口。不同的插值方式,利用函数interpolate.interp1d进行操作,插值,首先要先给出x的赋值,利用linspace函数来构造赋值列表。函数的构造利用numpy库的cos,exp等进行。
2024-04-18 08:33:53
282
原创 优化问题寻找约束条件
本题的求解主要是背后的数学知识,寻找最优化问题,利用拉格朗日等式,构造出KTT条件,利用sympy库的相关函数进行求解。约束:X1 –X2 + X3 <= 30,并找到其中有效约束。
2024-04-18 08:32:56
278
原创 高斯矩阵LU,QR,奇异值
s中有n个奇异值,一般排在后面的比较接近0,所以仅保留比较大的r个奇异值。随机生成一个10x15的高斯矩阵,均值为自己学号后两位,方差为1。python的强大就在于各种库资源的丰富,对于LU分解,scipy库有对应的lu函数可以用于调用,返回。把矩阵A作为QR,q是正交的,r是上三角形。l: 具有单位对角线的下三角矩阵(M,K)或梯形矩阵K=min(M,N)numpy库有对应的QR分解和奇异值的求解函数,直接调用就好,注意返回值。u大小为(M,M),s大小为(M,N),v大小为(N,N)。
2024-04-18 08:31:48
424
原创 绘制曲线图阶梯图
绘制曲线图、阶梯图x = sint-t*cost, y = cost-t*sint,, t区间为。进一步熟悉曲线图的绘制,plot函数的调用。了解了step函数的调用,用于绘制阶梯图。
2024-04-18 08:30:08
593
原创 绘制给定函数散点图
了解散点图的绘制使用的是 scatter函数,传入x坐标以及y坐标,以及一些点的参数设置。绘制散点图x = sint-t*cost, y = cost-t*sint,, t区间为。
2024-04-18 08:10:57
384
原创 多种饼状图表示支出Python
画饼状图都是采用plt.pie,不同的画法不过是对函数中的参数的设置,要提前了解,知道都有哪些参数可以设置,需要使用的时候再去搜索,用不着强背。统计自己十月份的各项支出,并利用软件绘制自己的支出饼状图,采用3种以上方式展示。
2024-04-18 08:10:03
554
原创 三维图形Python
绘制三维图形 x = sint-t*cost, y = cost-t*sint, z = t, t区间为。三维绘图需要用到axes类,构造方法如代码中所示。,图形x、y、z轴均加网格线,z轴取对数分布。最后就是z轴用对数分布,调用相关函数即可。然后表达式的书写与二维类似。
2024-04-18 08:07:57
420
原创 绘制三角函数曲线
利用numpy库得到点集,利用matplolib进行绘制,通过对plot参数的设置进行线的颜色,形状进行调整。为了展示的美观,完整。利用xlim和ylim设置xy轴的范围,最后打上标签,各线条表示的函数。一幅图内同时绘制sin、cos、tan函数曲线图,区间长度为。,三条曲线线型、颜色各不相同。
2024-04-18 08:06:15
795
原创 XYZ+YZZ=532 Python代码
利用取整运算,从任意一个三位数得到他们的百位,十位,个位的数字,赋值给x,y,z。已知XYZ+YZZ=532,其中X、Y和Z为数字,编程求出X,Y和Z的值。然后利用乘法,组合成xyz以及yzz,判断相加是否为532即可。
2024-04-18 08:04:50
484
1
原创 向量数值对调Python代码
随机生成两个长为100且服从标准正态分布的向量,然后将两向量所有偶数位的数值对调,输出所有的4个向量(对调前的2个,对调后的2个)。利用numpy库生成两个长为100且服从标准正态分布的向量,转换成list类型后,采用for循环进行偶数位的对调。
2024-04-18 08:03:12
267
1
原创 成绩转绩点 Python代码
那么只需加入两个if判断,把大于等于90分的转成4.0,小于60的转为0.0,其余中间的都能通过表达式进行转换(其实小于60也能用表达式,大于90不行,例如95会得到4.5,不符合规范)。编写成绩转化为绩点的函数,用98,93,89,73,66分别调用函数,生成对应绩点。关键在于成绩和绩点的转换表达式,经过简单的数学分析,不难得出转换表达式为。
2024-04-18 07:59:56
485
1
原创 13的倍数or前两位是13_Python代码
此题较为简单,设置变量count用来遍历,13的倍数自然及时i%13==0,前两位是13只需要i//10==13,即可,两者作为条件式进行or连接成为if的判断条件。count记得+1。找出1至999之间是13的倍数或者前两位数字是13的数字,输出这些数字,并统计有多少个。最后输出最终count即可。
2024-04-12 15:28:24
321
原创 学生信息python代码
编写程序,记录十名学生的信息,至少包括姓名、年龄、出生年、数据统计分析课程实验成绩,程序输出前n个学生的年龄平均值、数据统计分析课程实验成绩平均值,n为函数的输入参数。学生信息的存储方式考虑构造类,因为学生作为一个对象,据题目要求有若干属性,所以选择构造一个student类。函数的具体实现方法,也较为简单,就是利用for循环遍历前n个实例,累加对应属性值,最后除n即可。最后就是封装两个函数,用来输出前n个学生的年龄和成绩,n作为函数的参数传入。
2024-04-12 15:26:31
489
原创 用python语言实现主成分分析算法PCA
3.关于PCA降维,需要注意数据的线性,PCA假定数据在高维空间中是线性相关的,因此对于非线性关系较强的数据,PCA可能不适用。特征值分解:对协方差矩阵进行特征值分解,得到特征值和对应的特征向量。特征值表示特征的重要性,特征向量则代表了投影方向。降维转换:选取特征值较大的特征向量构成转换矩阵,通过矩阵乘法将原始数据投影到新的低维空间中。计算协方差矩阵:根据预处理后的数据计算协方差矩阵,它反映了数据中不同特征之间的相互关系。没有直接使用封装完的PCA函数,而是按照主成分分析的方法,完成数据向指定维度的降维。
2024-04-12 15:10:09
444
原创 机器学习-用python语言实现矩阵奇异值分解算法
没有直接使用numpy库里的SVD函数进行奇异值分解计算,但是还是借用numpy库用于矩阵的转置,求特征值,特征向量,矩阵乘积,特征值分解等一系列操作。考虑一个问题:对于V其实是AA^T的特征向量,那么U其实就是A^TA的特征向量,这样去求,会使算法编写更简单些,但是时间复杂度上升了。1)对于一个 m × n 的矩阵 A,首先计算它的转置矩阵 A^T 与 A 的乘积 B = A^T × A。3)将 B 的特征值按照从大到小的顺序排列,并选取前 r 个非零特征值(r 是矩阵 A 的秩)。
2024-04-12 15:08:57
607
原创 机器学习-用python语言实现K-means算法
2.KMeans算法,其实就是在两步之间不断迭代,第一步,确定类的中心点。然后最初,需要自己设定初始的中心点,我代码中采用的随机选取点的策略。当然为了更好的聚类效果,有更加科学的初始化方法,比如kmeans++。3.最后写完之后,看了网络上别的大佬的手写kmeans,发现自己的代码还有很多需要改进的地方,而且kmeans我封装成一个类,提供的接口仅仅只有cluster,属性上也缺少很多东西,而且在策略上使用了大量的循环,时间效率远远不如sklearn库的KMeans。
2024-04-12 15:07:18
393
原创 机器学习-sklearn.cluster:Clustering的使用
【代码】机器学习-sklearn.cluster:Clustering的使用。
2024-04-12 15:05:03
1007
原创 机器学习-sklearn,K-Means 算法测试手写数字集,代码分析
这些指标的作用是用于评估聚类结果的质量,通过比较聚类结果和真实标签之间的差异来度量聚类的准确性和一致性。这些指标的取值范围通常是从0到1,值越接近1表示聚类结果与真实标签的一致性越高。metrics.adjusted_mutual_info_score: 调整互信息指数。metrics.v_measure_score: V-measure指标。metrics.adjusted_rand_score: 调整兰德指数。,经过pca降维的数据处理速度最快,这也体现的降维的作用。
2024-04-12 15:01:42
602
原创 机器学习-sklearn-聚类,层次聚类树状图(Plot Hierarchical ClusteringDendrogram)
数组的每一行表示一次合并操作,在合并的过程中,最相似的两个样本或聚类会成为一个新的节点。而当将 distance_threshold 设为 0 时,类似于将 n_clusters 设为 None,聚类算法一直合并类别,直到所有的样本都被合并成一个大类。Q:AgglomerativeClustering(distance_threshold=0, n_clusters=None)中n_clusters设置为none,表示所有数据划分成一个类,那还有什么聚类的必要了吗?表示被合并的两个聚类的索引,
2024-04-12 14:54:32
1301
原创 机器学习-sklearn-聚类(clustering),比较不同聚类算法(Comparing differentclustering algorithms on toy datasets)
首先解释下这个结果:从左往右,分类算法依次是:Single Linkage(单链接法),Average Linkage(平均链接法),Complete Linkage(完全链接法),Ward Linkage(沃德链接法),从上往下数据类型依次是:环形数据,月亮形数据,方差不同的聚类数据,异方差分布的数据,高斯分布的数据,均匀分布的数据。例如,在使用KMeans聚类算法时,如果数据集中包含异常值、数据规模较大或者数据分布不均匀等情况,可能会导致算法出现警告或错误,并产生异常行为或不合理的结果。
2024-04-12 14:44:59
563
原创 机器学习 logistic回归的多分类(手写代码实现) python
2.要完成该算法,有一步很重要,就是要确定激活函数(个人理解:概率模型中激活函数就是在把某一个sample的各个特征的输入,转化为该sample对属于各个class的概率,从而赋予非线性的属性)。4.通过这个代码的编写,深刻认识到np库对于矩阵数值计算提供了极大的便利,机器学习的许多算法,离不开大量的矩阵计算,调用np库来辅助计算,一个是代码看起来更加简洁,二是使代码执行效率更高。(常用的np库的函数还是需要记住的)按课本所说,二分类可以使用sigmoid,softmax作为激活函数,扩展成多分类的情况。
2024-04-12 14:27:13
649
原创 机器学习 KNN算法(手写实现)Python
KNN算法其实不存在什么拟合过程,也就是说不存在对模型的训练,其实就是拿测试点去和每个训练点计算距离,看看最“近”的k个点都是什么标签,然后根据少数服从多数的规则,预测该测试点的类型。3.我的KNN算法采用的是暴力检索的方法,其实要提升程序的速度,可以考虑采用一些复杂的数据结构来存放训练集。KD树,Ball tree等都是很好的改进算法,这一部分有待改进。2.从代码最后跑出来的结果可以看到,鸢尾花数据在用KNN进行预测时,还是有不错的准确率的。
2024-04-12 14:18:55
327
原创 机器学习-sklearn-分类,线性模型linear_model的简单使用
【代码】机器学习-sklearn-分类,线性模型linear_model的简单使用。
2024-04-12 14:15:19
906
原创 机器学习-sklearn-分类 绘制概率分布图 Plot classifica probablity代码分析
1.又学会一招,一定网格范围内的不同区域可能属于不同类别,可以考虑使用热力图的方式进行一个概率的标注,使机器学习的结果更好的可视化。2.sklearn封装的机器学习算法太强大了,对于同一个模型,提供了许多的参数接口,可以随意选择你需要的参数类型,来适当的修改模型。
2024-04-12 14:11:10
381
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅