自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(33)
  • 收藏
  • 关注

原创 算法导论第15章-动态规划(1)导论

动态规划与分治法一样,通过组合子问题的解而解决整个问题。但是动态规划与分治法不同的地方在于,分治法是将问题划分成一些独立的子问题,递归地求解各个子问题,然后合并子问题的解而得到原问题的解,而动态规划则是将问题问题划分成一系列不独立的子问题,也就是各子问题包含相同的孙问题。在这种情况下,分治法会做很多不必要的工作,即重复地求解公共问题的孙问题。而动态规划则只对每个孙问题只求解一次,然后将其结果保留在表中,从而避免在各个子问题的求解过程中重复计算孙问题。动态规划适用于最优化问题。这种问题有很多可行解,每个解

2021-02-18 23:02:02 138

原创 csapp---6.5高速缓存存储器

由于CPU的运行速度比主存的运行速度快很多,而且差距越来越大,系统设计者只能在CPU寄存器与主存之间插入一个小的SRAM高速缓存存储器,称为L1高速缓存(一级缓存),用来作为主存的缓冲区域,它会提前存储CPU可能访问的数据,使得CPU可以不用等待从主存中读取数据。后来因为一级缓存都不足以弥补CPU与主存之间运行速度的差距,设计者又加上了L2高速缓存和L3高速缓存,他们的速度比L1高速缓存更慢,但是存储容量比L1高速缓存更大。为了降低复杂度,我们只假设CPU与主存之间只有L1高速缓存。通用的高速缓存存储器

2021-02-10 21:17:05 455

原创 CS:APP--2.4.4舍入

浮点数的缺陷与解决方案浮点数表示方式的范围和精度是有限的,例如练习题2.49中,有些整数是无法用浮点数表达的,因此它不能精确地还原实数运算。因此,对于这些无法用浮点数表示的数,人们希望找到离这些数最近的可以用浮点数表示的数用来代替它们,寻找这些代替数的操作就叫做舍入。舍入操作的关键舍入一个数的关键在于保持舍入后的数的上界与下界与舍入之前一样。上界的定义是离该数最近的,比该数大的,可被浮点数表示出来的数,下界的定义是离该数最近的,比该数小的,可被浮点数表示出来的数。但是这将带来新的问题,两个代替数

2021-02-04 14:54:03 299

原创 Have Fun with Numbers

这道题花的时间也挺长的,主要的问题还是边界与特例没想明白,有20位的数不能直接用int表示,long long类型也只能保存20位数,不能保证21位数,所以到了20位9翻倍有21位时就会出问题,这个边界我错了两次,一次20位,一次21位。然后是翻转的边界问题也想岔了,还有就是20位进位到21位这种情况也想漏了。感觉算法题的难点就是思考边界与列举不同情况,假设一个人可以很想明白边界问题和想到所有的情...

2019-12-04 15:17:22 117

原创 自测-3 数组元素循环右移问题

这一次的题目有着最高的通过率,但是却是我花时间最久的一道题。。。首先我的方向走错了,最开始我想到了以前遇到的一种用少的变量交换数组的题目,但是这两个完全是不同的解题思路,这里我就花费了很长时间才走回正常的思路,然后是我自己想岔了一种情形,我把一种在特殊的情形下适用的规律当作了普遍规律,这也导致了我再次犯错,然后我通过不断地一步步地调试找出了问题出在了哪里,找到问题后,我又想不到该怎么解决这一问题,...

2019-12-03 22:52:58 107

原创 PTA自测-2 素数对猜想 (20 分)

今天写了一下这道题,感觉还好,出了一点小问题,不过也很快解决了:#include<iostream>#include<math.h>using namespace std;int isPrime(int i);int main(){int i = 0;int N = 0;int p2, p1;...

2019-12-03 19:01:08 184

原创 数据结构与算法初探--第一天

自己想学习数据结构转码农,于是想考个PAT证,首先做了一下它的自测题-打印沙漏,我的答案如下:#include<iostream>#include<math.h>using namespace std;int main(){int N;char s;scanf("%d %s", &N, &s);...

2019-12-02 18:22:28 97

原创 pytorch中view的用法进阶

view作为numpy和matlab中resahpe的继承,但是我总是没搞清他的排序是怎样,探究之后,如下:y=x.contiguous().view(10,25,2)首先是做了x_1=x.contiguous().view(1,-1)将x变成了一维向量,然后他就会按照从左到右的顺序填充维度,其填充的顺序是从最右边的维度开始填起,在这个例子中是第三维2,即y[0,0,:]=x_...

2019-11-30 16:22:24 301

原创 pytorch调试的坑--多GPU调试时forward的批大小为总批大小的1/n

在调试pytorch程序时,当我们使用4个GPU时,传入模型的forward的批大小为原始批大小的1/4

2019-11-30 15:37:19 385 2

原创 如何为python程序配置参数

创建一个参数解释器:importargparseparser=argparse.ArgumentParser()配置参数:parser.add_argument('--max_epochs',type=int,default=200)值得说明的是:如果要输入List类型的参数,应该是parser.add_argument('--decay_epochs',na...

2019-11-30 12:59:46 656 1

原创 如何使用tensorboardX保存以及可视化训练过程数据

保存数据:在代码中:首先实例化一个SummaryWriterimporttensorboardXastbwriter=tb.SummaryWriter(log_dir=tb_path)然后将需要保存的数据以键-值的方式保存在writer中:writer.add_scalar(key, value, step)其中step表示了保存的值来自第几次迭代,比如我第三...

2019-11-29 16:59:52 1781 1

原创 python最简单的tqdm进度条使用方法

该文章介绍的方法是最不容易出错的方法,但是也是对程序改动最大的方法,是否使用看个人需求实例:创建进度条:from tqdm import tqdm(记得是tqdm类,不是tqdm模块)with tqdm(total=len(trainloader)) as pbar:{迭代程序}更新进度条:在迭代程序每一步完成的时候,添加:pbar.update()...

2019-11-29 15:54:14 2356

原创 pytorch DataParallel和cuda的使用顺序

经过实验,DataParallel和cuda的使用没有固定顺序,不管是先DataParallel还是先cuda都ok,但是这两句话都不能少

2019-11-29 15:42:25 833

原创 python计算程序运行时间

import timestart=time.clock()elapsed=(time.clock()-start)print("Timeused:",elapsed)

2019-11-29 15:36:49 196

原创 vscode调试时报错raise RuntimeError('already started')

https://blog.csdn.net/wangzi371312/article/details/92796320

2019-11-28 14:14:21 311

原创 pytorch如何在不引入额外参数的情况下在forward函数中判断模型是否处于训练状态

知识来自于https://www.cnblogs.com/hellcat/p/8509351.html前置知识:当模型使用train()函数进入训练状态时,Module.__dict__字典中的‘training’ 对应的值将会变为True,反之,当模型进入eval模式时,'training'对应的值将会变为Falsepytorch中nn.Module的模块重写了__getattr__...

2019-11-26 20:17:40 1155

原创 ubuntu卸载与安装NVIDIA驱动

本教程为最稳妥的卸载安装方式,卸载和安装是分不开的,在卸载前就需要下载好需要安装的nvidia驱动1.在卸载驱动之前,在NVIDIA官网选择合适自己主机显卡的驱动版本(选错下载的版本号就需要再次重装了),进行下载,记录驱动保存的路径(重要!一定要记得)2.通过blacklist的手段,禁用一些ubuntu功能(网上有很多教程)3.进入ubuntu的命令行模式,卸载nvidia驱动(网上...

2019-11-26 16:52:46 898

原创 vs code配置远程开发

由于vscode可以直接通过SSH进行远程开发,所以最近从pycharm跳到了vscode,其中配置vscode远程开发的流程如下:首先确保用于控制的主机A上拥有ssh服务(W10一般都有),确保被控制的主机B上拥有sshd服务(网上ubuntu教程很多),检验这一步是否成功可以在主机A上输入ssh xx(主机B的用户名)@xxx.xxx.xxx.xxx(主机B的内网IP地址),如果成功,主机...

2019-11-26 16:36:38 161

原创 如何在python中定义传入参数时正确地设置bool变量

如果直接使用argparse设置传入的参数变量为bool类型的话,不论传入的值为False或者True,它都会是True,原因暂不深究。一个简单的解决方案是在定义参数变量时将其类型设置为ast.literal_eval...

2019-10-09 21:00:51 2294

原创 pytorch的可重复问题

首先在程序的开头设置:torch.manual_seed(0)torch.cuda.manual_seed(0)torch.cuda.manual_seed_all(0) # 为所有GPU设置随机种子np.random.seed(0)random.seed(0)以保证随机数一致然后在定义DataLoador前,添加如下函数:def worker_init_fn(wo...

2019-05-31 17:10:37 337

原创 用于拟合的线性回归(LR)算法

输入:1,连续的样本特征2,连续的样本标签目的:对连续的样本特征与标签拟合出误差最小的函数代价函数:为了最接近实际情况,最小化代价函数: J = 1/2m * Σ(h(xj) - yj) ^ 2m是样本个数,Σ对所有样本求导,j是样本序号,h(xj)是对第j个样本经过拟合函数的输出值,yj是第j个样本的样本标签最简单的直线拟合函数:h(x) = w1 * x + b...

2018-06-12 10:53:19 502

原创 模式识别概论(6)KNN算法

K最近邻算法:基于实例的分类算法稍后再补

2018-06-11 14:35:17 174

原创 模式识别概论(5)回归分析与神经网络

线性回归:拟合参数h = [h1;h2],标签集y = [y1,y2,y3],一个样本x1 = [x1;x2],样本集X = [x1,x2,x3]代价函数:J = Σ(h' * x - y)^2,Σ是对所有样本求和对代价函数求导:...

2018-06-11 14:28:05 186

原创 用于寻找凸函数最小值的梯度下降(gradient descent)法

凸函数性质:1,在二维凸函数的最小值的x坐标的左边的x坐标对应的函数斜率是负数,在二维凸函数的最小值的x坐标的的右边的的x坐标的函数斜率是正数2,x坐标越接近于最小值的x坐标,对应的斜率越接近于0步骤:1,随机选取一个x坐标2,求这个点对应的斜率3,如果该点斜率为负数,说明该点在最小值的左边,x坐标需要增加,如果该点斜率为正数,说明该点在最小值的右边,x坐标       需要减小4,x坐标变换的步...

2018-06-11 10:40:06 1378

原创 模式识别概论(4)无监督学习

1,K-means算法(1)从所有的N个训练数据中选取K个数据作为初始的聚类中心。(2)计算所有样本与每个中心的距离,并按照距离最小的原则进行类别分配。 (3)用每类中新的数据重新计算聚类中心。 (4)不断重复步骤(2)-(3)进行迭代,直到满足终止条件为止。 最小化代价函数:J = ΣΣ(xij - cj)^2,第一个Σ是对所有样本求和,第二个Σ是每个样本对所有聚类中心的距离求和,i代表样本序号...

2018-06-11 09:26:40 561

原创 模式识别概述(3)相似度测量

三种样本间的距离测量公式:x1,x2代表要计算的两个样本,X代表所有样本,u代表样本均值1,欧式距离D = (x1 - x2)' * (x1 - x2)2,马氏距离步骤:(1)计算特征的协方差矩阵sigma = (X - u) * (X - u)’(2)协方差求逆inv(sigma)(3)计算距离D = (x1 - x2)' * inv(sigma) * (x1 - x2)使用条件:总体样本维数大...

2018-06-11 09:14:41 230

原创 模式识别概论(2)特征提取

1,特征提取的阶段(1),基本的视觉特征提取常见的视觉特征有颜色特征,纹理特征,局部特征颜色特征:表象直观性,对尺度变换不敏感,容易提取,计算量小,举例:颜色直方图,颜色矩,颜色相关图纹理特征:描述图像中同质现象的特征,反映图像内容共有的内在特征,举例:二进制模式特征(LBP),梯度直方图(HoG)局部特征:指一副图像中某些区域具有区别于周围像素的特定模式,举例:基于点的局部特征和基于区域的局部特...

2018-06-11 08:25:23 493

原创 模式识别概论(1)概述

1,模式与模式类:模式类是一类事物的代表模式是模式类的具体体现举例:模式类:0,1,2,3,4,5,6,7,8,9等数字模式:用户手写的一个具体数字2,基本方法:模式识别系统:由数据采集,预处理,特征提取选择,分类器决策,分类器设计五部分组成分类器设计流程:训练样本输入--》预处理--》特征选择--》判别函数--》误差检验--》改进判别函数对未知样本分类:数据获取--》预处理--》特征提取--》分...

2018-06-10 23:21:18 285

原创 用于图像分类的位置约束线性编码(LLC)模型

论文:Locality-constrainedLinearCodingforImageClassification代码:http://www.ifp.illinois.edu/~jyang29/LLC.htm基础知识:该编码方式是在词袋模型(BOW)的基础上的改进目标:使用LLC编码方式对特征编码,获得VQ编码得不到的位置信息,从而提高准确率在VQ编码的基础上的改进方法:输入:样本的N个特征,M个聚...

2018-06-10 18:13:19 1107 2

原创 用于降维的线性判别分析(LDA)算法

LDA降维算法分为简单两类情况和多类通用情况只有两类样本的简单情况:输入:两类样本特征目的:将两类样本的特征投影至同类距离小,异类距离大的低维空间上,使得数据量减少的同时不损失分类信息步骤:1,计算两类样本的均值u0和u1,协方差矩阵sigma0,sigma12,假设投影空间w,两类样本投影到w后,均值为w'*u0和w'*u1,协方差矩阵为w'*sigma0*w和w'*sigma1*w2,根据使投...

2018-06-10 00:22:41 593 1

原创 用于图像分类的空间金字塔匹配(SPM)池化模型

论文:Beyond Bags of Features: Spatial Pyramid Matching for Recognizing Natural Scene Categories代码:http://web.engr.illinois.edu/~slazebni/输入:训练图像集步骤:(1):训练词袋模型1,对所有的训练图像提取SIFT特征2,对提取的SIFT特征使用kmeans算法得到M个...

2018-06-09 21:20:53 1950

原创 用于图像分类的特征袋(BOF)模型

训练:输入:训练图像集步骤:1,对所有的训练图像提取SIFT特征2,对提取的SIFT特征使用kmeans算法得到k个聚类中心3,将每张训练图像的SIFT特征通过第2步得到的kmeans模型进行聚类,将SIFT特征分为k个簇4,对每张图像的每个簇的SIFT特征统计直方图,得到k维直方图,将图像由SIFT特征转换为k维直方图特征向量4,将每一类的k维向量送入SVM分类器中训练,得到分类超平面测试:输入...

2018-06-09 21:19:02 980 1

原创 机器学习数学基础(1)简化线性代数

本文是https://zhuanlan.zhihu.com/p/30191876的总结与补充标量、向量、矩阵与张量:1,标量单独的数,小写符号表示,定义时说明所属范围2,向量一列数,粗体小写符号表示3,矩阵二维数组,粗体大写表示,矩阵大小表示标准:,A为m行n列矩阵4,张量对标量,向量,矩阵的标准化表示方法,标量是零阶张量,向量是一阶张量,矩阵是二阶张量

2018-02-01 14:58:12 297 1

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除