自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 1>LINK : fatal error LNK1168: 无法打开 E:..\..exe 进行写入

直接根据此目录找到该文件,删了它(亲测有效!!!),然后重新运行就可以啦!比如我这个文件路径:把那个后缀是exe的文件删了就行可能别的博主会推荐去任务管理器中找到,然后结束进程,但是我试了好久,没找到。。。。(可能是我比较垃圾,大家可以试试)...

2021-06-03 17:16:30 1440 1

原创 c++中字符串常见操作

c++中字符串常见操作1.字符串赋值①用等号赋值②用C语言风格的字符串进行赋值③拷贝构造④多个重复项构造⑤用函数进行赋值2.字符串拼接①用+进行拼接②用函数进行拼接3.字符串查找子串4.字符串替换5.字符串比较6.字符串存取7.修改单个字符,只能修改单个字符8.字符串的插入9.字符串的删除子串操作10.获取字符串子串1.字符串赋值①用等号赋值string str1 = "hello world";str1 = "你好,世界";str = 'h';在定义字符串时,就可以直接对其进行赋值;后边还可

2021-05-27 22:05:17 4182 1

原创 C或C++中的/和%

1.除法运算/得分情况讨论①除号两边都是整数那么这就是整除,得到的也是整数,其实就是咱们数学中的除法,然后对商进行向下取整(就是保留整数部分,小数部分全都舍掉)#include<iostream>#include<stdio.h>using namespace std;int main(){ int a,b; int m; scanf("%d %d",&a,&b); m = a/b; //只能表示整除(如果两边都是整数),想要得到小数,得进

2021-05-23 11:09:36 3893

原创 C或C++中结构体的使用

1.结构体的作用,以及什么是结构体结构体说的好像挺让人难以琢磨,其实大家细看,就会发现它其实是一些数据类型的集合,一个结构体里边可以有很多不同的数据类型,和普通的数组(只能包含同一种数据类型的数据)什么的不一样。它就是一个特殊的数据类型,看下边的这个例子struct Student{ //成员列表 string name; int age; int score;}; //这个分号可不能丢定义了一个结构体,它里边包含了3个数据类型(分别是学生姓名,年龄,考试分数;这些数据都属于同一个学生

2021-05-22 08:58:12 1368

原创 让人既讨厌又喜欢的const指针

const指针目录咱先说说const指针有哪几类吧大家可能还不知道const指针到底是干啥的吧1.const修饰*(也叫常量指针,就是指针所指向的内容,赋值之后就不能改了)2.const修饰常量(也叫指针常量,就是指针赋值之后就不能改了)3.const即修饰常量又修饰*目录咱先说说const指针有哪几类吧它一共有3类,const修饰指针,const修饰常量,const即修饰指针又修饰常量,这三类。大家可能还不知道const指针到底是干啥的吧其实它就是修饰了谁,谁就不可以改变;下边看看例子大家可能就

2021-05-20 20:08:30 67

原创 C语言或C++中不同类型指针所占内存大小

和操作系统位数有关1.如果操作系统是64位,则占8个字节;如果操作系统是32位,则占4个字节。2.并且所有类型的指针占的内存大小都一样。可能大家会迷惑这是为什么呢?因为指针就是一个地址,操作系统已经明确的规定了地址是多少位,那么它就有多长(就是它的长度是固定的),长度固定了,占的内存不就固定了么。3.如何看指针所占大小和普通的变量一样,直接用sizeof#include<iostream>using namespace std;int main(){ int a = 1

2021-05-18 22:19:24 3233

原创 keil5安装教程及下载

一.下载地址链接地址:https://pan.baidu.com/s/10saWEnjP_UBq5wYJFTjogw提取码:tmtz二.安装过程1.双击mdk514.exe系统会提示是否要打开,点击“是”,会出现这个界面2.点击next把下边那个框框勾上,然后点击next3.自定义地址它的默认地址是C盘,但我们一般都不把它放在C盘(系统盘),会使电脑变卡。然后需要注意的是,地址要写成全英文的,防止会出现错误,然后点击next.4.随便填点即可,e-mail处要写成…@…com的形

2021-05-17 22:46:12 4305

原创 C语言中字符串的输入输出

字符串的输入输出①使用scanf和printfchar str[10];printf("请输入一个字符串\n");scanf("%s",str);printf("该字符串为%s\n",str);大家可能注意到了,字符串输入的时候,没有用到取地址符;因为我们定义的是一个字符数组,数组名就能代表数组的起始地址,然后每输入一个字符,会依次存入数组中,**字符串以\0结尾,所以上边那个长度为10的数组,最多存9个字符,最后一个字符为\0,**输入多了,会报错。注意:scanf里边除了"%s","

2021-05-16 17:44:44 3321 2

原创 C或C++中生成随机数

想生成什么范围内的,就把下边语句中的那个100改成该范围最大的数即可//生成1-100之间的一个随机数int num = rand() % 100 + 1;如果想要每次运行生成的随机数不同,前面加一个随机种子(利用当前系统时间生成);但是time是一个库,需要导入#include<ctime> //include<time.h>也可以srand((unsigned int)time(NULL));...

2021-05-15 18:19:59 417

原创 C++和C语言中选择结构switch-case详解

先上代码,大家看一下#include<iostream>using namespace std;int main(){ int score = 0; cout << "请输入一个分数:" << endl; cin >> score ; switch(score) { case 10: cout << "您认为这是一个好看的电影!" << endl; break; case 9: cout

2021-05-13 11:07:07 711

原创 C++中的输出语法与C语言中的输出对比

1.C语言#include<stdio.h>int main(void){ int a = 10; printf("%d",a); return 0;}变量不能直接输出,需要在引号中加入该变量对应的数据类型的表示(eg:整型是%d),后边在接上变量名才可以。2.C++#include<iostream>using namespace std;int main(){ int a = 10; cout << a << endl;

2021-05-11 20:37:22 795

原创 码分复用CDM详解

码分复用(CDM)实际上,人们更常用的是码分多址(CDMA,也是电信网2G的简称)1.过程①使用CDMA的每一个站会事先被指派一个唯一的m bit码片序列(eg:分配8bit,为00011010,如果该站要发送1,则将该序列00011010直接发送出去;若发送0,则需要发送该序列的二进制反码,即11100101)但为了方便,我们会将码片中的0写成-1,方便后边验证时候计算,上边那个码片就会被写为-1-1-1+1+1-1+1-1注意:CDMA为每个站分配的码片序列不仅不一样,而且还两两相互正交(正交

2021-05-10 22:28:34 10383 16

原创 计算机网络之物理层总结

一.基本概念1.主要任务确定与传输媒体的接口有关的一些特性;这些特性为①机械特性:就是用的接口所用接线器的形状,尺寸,引脚数目,等一些硬件条件;②电气特性:指明在接口电缆的各条线上出现的电压的范围;(电压得在一定范围,要不不知道这新来的电压是啥意思了)③功能特性:就是某一条线上出现的某一电平的电压的意义(每一个电压都代表自己的意义,所以它得在一定范围,能被列举出来,也印证了它的电气特性);④过程特性:指明对于不同功能的各种可能事件的出现顺序2.功能物理层的功能就是协调在物理媒介中传送比特流所

2021-05-08 22:12:08 840

原创 早期的MP神经元和Rosenblatt感知器

MP神经元其实就是仿造生物神经元产生的特点:多个输入,一个输出对多个输入进行加权求和,得到一个输出。就是我们现在神经网络中的一个神经元,MP神经元是最早产生的神经元,所以有个别样的名字,其实它就是个神经元;然后对输出确定一个阈值,进行2分类,看这个神经元是兴奋还是抑制它是神经网络的基础感知器是最简单的神经网络感知器中的神经元没有激活函数,所以它只能对数据进行线性二分类;它的结构就是神经网络的结构函数如图所示,进行二分类,求得结果大于0即为正类,反之为负类。参数训练过程yWx可以代表它的

2021-05-04 20:33:33 556

原创 局部表示与分布式表示

1.局部表示咱们常见的离散型数值,符号等,用的都是局部表示;比如鸢尾花数据集的特征值,类别号;还有一个常见的局部表示就是one-hot编码,把一些文字性的特征值进行编码。优点:①经过one-hot编码后,多种特征进行组合后,是一个稀疏的矩阵,当用于线性模型的计算时效率非常高②离散的表示方式有很好的解释性,有利于人工归纳和总结特征缺点:①经过one-hot编码后,两两特征之间的相关性就是0,无法正确表示出它们之间的相关性②one-hot向量维度特别大,而且还不能扩展,如果进来一个新的特征值,就

2021-05-03 21:36:56 1491

原创 人工智能与机器学习,深度学习的关系

人工智能是一大类,它包括机器学习我们常见的人工智能有智能家居,智能机器人,等等,凡是能涉及到智能的机器处理的都算是人工智能;机器学习呐,是一些模型的总称,像逻辑回归,决策树什么的都是机器学习的一部分;人工智能的实现要基于这些模型或其他模型,但还有不只是模型的东西,所以说人工智能包括机器学习,人工智能的范围要更广。...

2021-05-03 20:03:36 196

原创 全网最全的ResNet(残差神经网络)介绍

1.新的结构提出背景:该团队研究了VGGNet,给它最多为什么是19层提出了解释左图为VGGNet在训练集上的损失,右图是在测试集上的,图像表明随着层数的加深,模型的泛化能力并没有提升,反而下降;所以,ResNet团队就大胆的提出,这可能是非线性的拟合能力太强(模型越深,非线性层堆叠越多,非线性拟合能力越强),所以他们就提出了想要增强线性的拟合能力的想法,提出了残差块。残差块在经过非线性层后,又加入了原本的输入,由图上可以看出是快捷连接,没有参数。残差块中通常有大于1个的卷积层,避免了两条

2021-05-02 18:08:06 6565

原创 pytorch下处理数据以及torchvision.datasets.ImageFolder的使用

1.针对一般数据(不是图像类型)①一行代表一个数据,可以是普通列表或者是np.array的形式,下面例子中x_train和x_test就是这样,分别代表着训练集和测试集,按照下边这个转换就可以啦注意 要是分类问题,标签必须是torch.int64类型也可以将标签和样本放到一起,每一行类似这样的([2,3,4],0),标签为0,[2,3,4]为样本特征;然后在迭代时,一行就直接可以取出样本特征和它的标签train_x = torch.tensor(x_train,dtype=torch.float32

2021-04-27 21:12:27 1141 2

原创 nn.CrossEntropyLoss详解

nn.CrossEntropyLoss是pytorch下的交叉熵损失,用于分类任务使用下面我们看看它具体是怎么实现的先创建一下数据import torch.nn as nnimport torchx = torch.rand((3,3))y = torch.tensor([0,1,1])#x的值#tensor([[0.7459, 0.5881, 0.4795],# [0.2894, 0.0568, 0.3439],# [0.6124, 0.7558, 0.

2021-04-26 17:23:23 22548 6

原创 你知道GoogLeNet吗

GoogLeNetGoogLeNet在 ILSVRC 2014 的比赛中,将 Top-5 error 降低至6.7%,获得了分类任务第一名的成绩注:大家可能会有疑问,GoogLeNet里边的这个l为啥要大写,不就是google么,其实它是继承自LeNet,所以这么写了。提出背景:在前边VGG,NIN等网络的产生下,最先想到的提升网络的模型,可能就是加大模型深度和宽度,但这样缺点很明显,会直接加大参数量,导致过拟合,难训练的问题出现。所以该团队又想到参数量大,本质上就是密集连接造成的,神经网络是仿造

2021-04-24 16:54:48 356

原创 你不知道的NIN,及其它的pytorch实现

NIN(Network in Network)正如它的名字所示,代表着网络中的网络。它发表于2013年,入选国际学习表征会议ICLR 2014优秀论文,其通过少量参数的深度学习模型轻松击败了AlexNet;这也对我们电脑配置不高的人来说,算是一个特别友好的模型,不需要太大显存量就可训练一个较好的模型。1.那为啥它的模型参数量少呢?其实是因为它最后没有全连接层,大家应该知道,全连接层的参数量会特别大,训练时会耗费很大时间在全连接层上面,这些参数也会占用很多内存,让你本来就少的可怜的内存雪上加霜。

2021-04-20 21:55:44 221

原创 神经网络优化(2)之学习率衰减

学习率衰减1.通常我们在进行模型训练时,刚开始的参数值离最优值的距离还是比较远的,所以我们会选择比较大的学习率(也叫步长),让它下降的快点;下降次数多了,快接近(收敛到)最优值的时候,会选择较小的学习率,让它走慢点,走稳一点。但是,常常我们在训练模型的时候,只是设置了一个学习率的值,它不会变化;设置的太大的话,到后面,参数值会抖动的比较厉害,不能很稳;设置的太小,又会走的很慢,需要加大训练轮次,又浪费时间;所以,还是不如能动态调整的好。2.常见的学习率衰减方法①阶梯衰减就是分段衰减,下降几次(跑几

2021-04-18 18:53:11 1234

原创 神经网络优化(1)之梯度截断

梯度截断1.出现原因由于进行反向传播时,进行每一层的梯度计算,假设梯度都是比较大的值,计算到第一层的梯度时,会呈指数级增长(反向传播,从后往前,有相乘的关系),那么更新完的参数值也会很大,越来越大,就会产生梯度爆炸的现象,找不到最优解。所以,提出了梯度截断的方法。2.解决方法①按值截断按值截断是比较简单粗暴的方法,由于梯度太大会产生梯度爆炸的现象,太小会产生梯度消失的现象(参数不更新),所以为梯度提供一个范围[a,b],如果梯度大于b,就把它设置为b;如果梯度小于a,就把它设置为a;若在

2021-04-17 19:52:22 4437 1

原创 ReLU激活函数的特点

ReLU(Rectified Linear Unit,修正线性单元)函数1.公式:可以看出这是个非常简单的函数,大于0部分不变,小于0的值全部压缩成0.2.优点①作为激活函数,计算简单,更加高效,速度快神经元得到一个值,可以直接看这个值的大小,然后直接得出结果,不用多余的加减乘除计算②ReLU 函数也被认为具有生物学合理性单侧抑制,小于0全部抑制;宽兴奋边界,大于0的部分达到无穷都可以,没有限制,即兴奋程度可以很高;有很好的稀疏性,能让小于0的全部变为0,增大了稀疏性。稀疏性越大:是指

2021-04-16 18:24:56 6598 2

原创 卷积神经网络中小卷积核的优势及神经网络运算量的计算

一.小卷积核一般指的都是大小为3*3的卷积核,可以有多个通道数eg:一个3×3×64的卷积核就是指长×宽为3×3,64个过滤器(厚度为64)1.一个5×5的卷积核可以用两个3×3的代替例如:输入的特征图为64×64的,① 用5×5的卷积核进行卷积,步长设为1,输出的特征图为ceil((64-5+1)÷1)=60,即为60×60的大小②用两个3×3的分别进行卷积,步长也设为1,第一步:ceil((64-3+1)÷1)=62第二步:ceil((62-3+1)÷1)=60结果也为60*60由上

2021-04-15 16:41:30 3112

原创 VGGNet详解

VGGNet一.特点1.模型很深,就是层数很多,常用的是16层和19层(即VGG16,VGG19)2.卷积层全部使用3*3的小卷积核二.模型VGG16模型如图所示卷积层+全连接层共16层;VGG19只是在VGG16的基础上又增加了3个卷积层。缺点:全连接层的参数量很大,可能要占到整个模型的90%左右,训练速度慢欢迎大家来评论区交流...

2021-04-15 15:49:02 412

原创 数据集划分和预处理的顺序

数据集是先做预处理呢,还是先划分训练集测试集呢?应该先划分数据集,理论上训练集和测试集是相互独立的。想要让模型效果达到很好的泛化能力,就是能应对一切没有见过的挑战,这些挑战就是测试集中给出的,在训练集里并没有见过的,而在测试集里出现了;要是在划分数据集前做了预处理,那么就会把测试集里的信息带入了训练集,可能最终的效果(对测试集的预测正确率)会有所提升,但其实模型并没有达到很好的泛华效果,不能很好的应对新来的数据;所以应该先划分数据集,然后分别对训练集和测试集做预处理,,作为两个独立的单元,没有信息的

2021-04-13 09:50:22 5155

原创 pytorch查看当前学习率

pytorch查看使用pytorch训练网络时from torch import optim #使用梯度下降算法optimizer = optim.Adam(model.parameters(), lr=lr) #SGD是随机梯度下降optimizer.state_dict()['param_groups'][0]['lr']

2021-04-12 16:19:39 1262

原创 全网最全的卷积运算过程

卷积运算1.卷积核的通道(也叫滤波器)的个数得与被卷积的图片通道数相同eg:输入图片是1024×1024×3,即通道数为3,那么每个卷积核得有3个通道2.卷积核做的是线性运算,核上的每个值与它滑动到的对应位置上的值相乘,然后把这些值相加。eg:默认滑动步长为1用右边的9个格放到原图上,9个9个的不重复的走先从左向右滑:输出的第一个值为2×1+8×0+9×2+1×1+2×0+8×1+7×3+7×0+2×0=50输出的第二个值为8×1+9×0+1×2+2×1+8×0+3×1+7×3+2×0+

2021-04-10 15:45:31 29563 7

原创 AlexNet详解及pytorch实现

介绍AlexNet是一个网络层数较多的模型,也就是一个很深的模型,在2012年的ImageNet比赛中大放异彩,算是一个深模型的开端。优点AlexNet相比之前的一些卷积神经网络模型有了一些改进,也才能取得一定的成就。改进也主要是4方面:全新的界面设计 ,将会带来全新的写作体验;在创作中心设置你喜爱的代码高亮样式,Markdown 将代码片显示选择的高亮样式 进行展示;增加了 图片拖拽 功能,你可以将本地的图片直接拖拽到编辑区域直接展示;全新的 KaTeX数学公式 语法;增加了支持甘特图

2021-04-07 19:30:31 311

空空如也

空空如也

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

TA关注的人

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