- 博客(83)
- 资源 (6)
- 收藏
- 关注
原创 C++面向对象程序设计-北京大学-郭炜【课程笔记(十一)】
容器类名::iterator 变量名;容器类名::const_iterator 变量名;* 迭代器变量名迭代器上可以执行++操作,以使其指向容器中的下一个元素。如果迭代器到达了容器中的最后一个元素的后面,此时再使用它,则会报错,类似于使用NULL或未初始化的指针一样。int main()// 一个存放int元素的数组,一开始里面没有元素// 常用迭代器i!= v.end();i++)// 反向迭代器r!=v.rend();r++)// 非常量迭代器j!= v.end();
2024-05-25 21:56:33
774
原创 C++面向对象程序设计-北京大学-郭炜【课程笔记(十)】(本节类容简单,以截图为主)
在 C++ 中,static成员是属于类而不是类的实例的成员。static成员可以被所有该类的实例共享,而不是每个实例都有自己的一份。static成员可以是静态数据成员(静态变量)或静态成员函数(静态方法)。静态数据成员:静态数据成员是类的所有实例共享的变量。它们在类的所有实例中都是相同的。静态数据成员在类内声明,在类外初始化,且必须初始化,通常在类的实现文件中进行初始化。public:// 静态数据成员声明// 静态数据成员初始化静态成员函数:静态成员函数属于类,而不属于类的任何实例。
2024-05-16 16:56:23
831
原创 C++面向对象程序设计-北京大学-郭炜【课程笔记(九)】
/ aa和bb之间相隔一个制表符输出输出:aa bb上面为何能这样输出呢!因为iostream里对
2024-05-14 16:39:06
876
原创 C++面向对象程序设计-北京大学-郭炜【课程笔记(八)】
qsort函数的声明base – 指向要排序的数组的第一个元素的指针。nitems – 由 base 指向的数组中元素的个数。size – 数组中每个元素的大小,以字节为单位。*compar:回调函数的函数指针,需要用户自己实现回调函数。
2024-05-11 10:04:23
1140
原创 C++面向对象程序设计-北京大学-郭炜【课程笔记(四)】
普通成员变量每个对象有各自的一份,而静态成员变量一共就一份,为所有对象共享。普通成员函数必须具体作用于某个对象,而静态成员函数并不具体作用与某个对象。因此静态成员不需要通过对象就能访问。静态成员变量本质上是全局变量,哪怕一个对象都不存在,类的静态成员变量也存在。静态成员函数本质上是全局函数。设置静态成员这种机制的目的是将和某些类紧密相关的全局变量和函数写到类里面,看上去像一个整体,易于维护和理解。
2024-02-21 23:36:42
1200
原创 C++面向对象程序设计-北京大学-郭炜【课程笔记(二)】
Init函数作用在r2上,即Init函数执行期间访问的w和h是属于r2这个对象的,执行r2.Init不会影响到r1。”,从而使得数据结构和操作该数据结构的算法呈现出显而易见的紧密关系,这就是“面向对象的程序设计具有“抽象”,“封装”,“继承”,“多态”四个基本特点。然后,通过某种语法形式,将数据结构和操作该数据结构的函数“和结构变量一样,对象之间可以用 “=” 进行赋值,但是。,进行比较,除非这些运算符经过了“重载”。通过类,可以定义变量。,也称为类的实例,就是我们所说的。”在一起,形成一个“
2024-02-15 23:58:36
1249
原创 C++面向对象程序设计-北京大学-郭炜【课程笔记(一)】
函数重载一个或多个函数,名字相同,然而参数个数或参数类型不相同,这叫函数的重载。作用函数重载使得函数命名变得简单。编译器根据调用语句中的实参的个数和类型判断应该调用哪个函数。// 调用(1)Max(2,4);// 调用(2)// 调用(3)// error,二义性。
2024-02-14 17:27:08
1054
原创 pair和typedef
typedef是在C和C++编程语言中的一个关键字。作用是为现有的数据类型(int、float、char……)创建一个新的名字,目的是为了使代码方便阅读和理解。
2023-11-23 20:57:15
1038
原创 Linux中执行bash脚本报错/bin/bash^M: bad interpreter: No such file or directory
在这里插入图片描述](https://img-blog.csdnimg.cn/94912813a4cb41a79b926a80bdd88fa5.png)命令行:sed -i "s/\r//" xxx.sh。使用下述命令直接替换结尾符为unix格式。执行命令行:cat -A xxx.sh。命令可以看到文件的格式为。
2023-09-13 12:49:42
2212
转载 【报错】ImportError: /lib64/libstdc++.so.6: version `CXXABI_1.3.9‘ not found
转载于。
2023-09-11 13:35:01
958
1
原创 liunx系统无sudo或管理员权限安装rar解压安装包
4、使用unrar \ rar命令解压 \ 压缩文件。进入到存储压缩文件的文件夹路径中。再次使用上述解压命令即可。2、解压下载好的安装文件。
2023-09-10 14:08:27
1666
1
原创 练习2:88. 合并两个有序数组
注意,因为 m = 0 ,所以 nums1 中没有元素。nums1 中仅存的 0 仅仅是为了确保合并结果可以顺利存放到 nums1 中。合并结果是 [1,2,2,3,5,6] ,其中斜体加粗标注的为 nums1 中的元素。注意:最终,合并后数组不应由函数返回,而是存储在数组。:需要合并 [1,2,3] 和 [2,5,6]。中,使合并后的数组同样按非递减顺序排列。:需要合并的数组是 [] 和 [1]。:需要合并 [1] 和 []。个元素表示应合并的元素,后。合并结果是 [1]。合并结果是 [1]。
2023-09-02 08:58:11
301
原创 【时间复杂度和空间复杂度】
空间复杂度一般指的就是磁盘空间,所以工作中一般优先时间复杂度。常用的空间复杂度就这两种。1、什么是时间复杂度?类的时间复杂度主要基于。定义例1的时间复杂度为。定义例2的时间复杂度为。定义例3的时间复杂度为。定义例4的时间复杂度为。定义例5的时间复杂度为。定义例4的时间复杂度为。定义例4的时间复杂度为。1、什么是空间复杂度?
2023-04-22 15:39:18
585
转载 functools 中的 partial()函数的作用
partial 接收函数 multiply 作为参数,固定 multiply 的参数 y=2,并返回一个新的函数给 double,这跟我们自己定义 double 函数的效果是一样的。所以,简单而言,partial 函数的功能就是:把一个函数的某些参数给固定住,返回一个新的函数。需要注意的是,我们上面是固定了 multiply 的关键字参数 y=2。
2022-12-17 13:58:21
308
转载 【PyTorch中在反向传播前为什么要手动将梯度清零?】
这种模式可以让梯度玩出更多花样,比如说梯度累加()传统的训练函数,一个是这么训练的:获取:输入图像和标签,通过计算得到预测值,计算损失函数;清空过往梯度; 反向传播,计算当前梯度;根据梯度更新网络参数;简单的说就是进来一个 的数据,计算一次梯度,更新一次网络.使用梯度累加是这么写的:【步骤1】:获取 :输入图像和标签,通过计算得到预测值,计算损失函数;【步骤2】:反向传播,计算当前梯度;【步骤3】:多次循环,不清空梯度,使梯度累加在已有梯度上;【步骤4】:梯度累加了一定次数后,先根据
2022-12-03 21:39:02
355
原创 【重新安装Anaconda心得】
如果你可以翻墙或使用梯子等,需要跳过这一步,如果添加了镜像源会导致你每次pip或者conda都会报错,需要断开梯子或境外流量【本人笔记本就是如此,如果你不嫌麻烦,添加也没事】【此电脑】–【右击鼠标】–【属性】–【高级系统设置】–【环境变量】–【系统变量】–【Path双击进入】–【新建(复制如下地址进去)】通过执行命令conda env list查看有哪些虚拟路径以及它们的存储路径,* 号表示当前所处的环境。然后,在Anaconda Prompt执行conda info命令,就可以看到修改默认环境路径成功。
2022-11-17 12:58:36
1817
原创 torch中函数的一些用法总结(不断更新)
式中predict_ labels与labels是两个大小相同的tensor,而torch.eq()函数就是用来比较对应位置数字,相同则为True,否则为False,输出与那两个tensor大小相同,并且其中只有True和False。
2022-08-29 15:21:10
353
原创 GHostNet网络最通俗易懂的解读【不接受反驳】
如下图所示,是由ResNet-50中的第一个残差块生成的某些中间特征图的可视化。从图中我们可以看出,这里面有很多特征图是具有高度相似性的(在图中分别用不同的颜色示意),换句话说,**就是存在许多的冗余特征图。,即每组的channel数量为1),尽管形式上两者有比较大的差别:分组卷积只进行一次卷积操作即可,而深度可分离卷积需要进行两次——先。之所以在写在前面中提到,本文的题目一定要先是分组卷积再是深度可分离卷积,因为在我看来后者是前者的极端情况(分组卷积的。第二次卷积输出即为深度可分离卷积的输出。
2022-08-20 15:37:34
14350
3
原创 nn.Module的children()与modules()方法、如何获取网络的某些层
测试运行,结果如下:可以看到这个网络的结构如下:children()方法返回的是最外层,也就是1,2,3这三个。Module.children()是一个生成器,生成器是一种迭代器。迭代器实现了__iter__() 和__next__()方法。迭代器肯定是可迭代对象,可迭代对象就能放在for x in …后面进行遍历。例:结果:也就是输入了第一层的元素1,2,3。modules()方法类似与深度优先遍历,不光返回的是最外层。Module.modules()也是一个生成器。结果:即,按照以下
2022-08-06 01:08:42
875
原创 torchvision.datasets.ImageFolder使用详解
是一个通用的数据加载器,它要求我们以下面这种格式来组织数据集的训练、验证或者测试图片。对于上面的root,假设data文件夹在.py文件的同级目录中,那么root一般都是如下这种形式./data/train和./data/valid。...
2022-08-02 16:21:15
6422
6
原创 邻接表与邻接矩阵
邻接表和邻接矩阵是图的两种常用存储表示方式,用于记录图中任意两个顶点之间的连通关系,包括权值。对于图G=(V,E)G=(V,E)G=(V,E)而言,其中VVV表示顶点集合,EEE表示边集合。对于无向图graphgraphgraphV=1,2,3,4,5V=1,2,3,4,5E=(1,2),(1,3),(1,4),(2,3),(3,4),(...
2022-07-15 09:55:31
1784
1
原创 python列表的特性
Python列表和C语言数组不同,并不是存的实在的值,而是存放的只想其他实例的指针。所以也就能够理解 为什么python列表里里面什么东西都可以放进去而不需要考虑类型了~(我的环境是 python 3.7)得出的结果是可变类型的每一行id都是不一样的,但是不可变类型的每一行都一样,这里我猜测,** 不可变类型修改的时候是创建一个全新的实例,如果每个id都不一样的话,会非常耗费内存,而且一般不会对其他东西有影响,所以就创建相同的实例,但是可变类型不能这样,可变类型如果id相同,那么修改他们的元素会对其他实例
2022-07-12 22:46:57
1364
原创 Pytorch框架学习路径(九:transforms图像增强(一))
Pytorch框架学习路径(一:张量简介与创建)Pytorch框架学习路径(二:张量操作)Pytorch框架学习路径(三:线性回归)Pytorch框架学习路径(四:计算图与动态图机制)Pytorch框架学习路径(五:autograd与逻辑回归)Pytorch框架学习路径(七:数据读取机制DataLoader与Dataset)Pytorch框架学习路径(八:图像预处理——transforms)1、norm_transform得到的是什么?如果大家不太懂函数、函数、函数的情况下,可以通过下述、、
2022-06-05 23:13:19
1326
2
原创 Pytorch框架学习路径(七:数据读取机制DataLoader与Dataset)
Pytorch框架学习路径(七:数据读取机制DataLoader与Dataset),博主手都写断了,大家觉得写的可以的话,给博主点个赞吧
2022-06-03 22:46:51
2351
4
原创 Pytorch框架学习路径(四:计算图与动态图机制)
动态图:如我们自己买机票,我们先去新加波,再去台湾省,再去日本市,但到了新加坡有人推荐先去日本市,所以我们决定改变路线,先去日本市东京县玩一玩,这就是动态,我们随时可以调整模型。
2022-06-01 00:19:26
710
1
原创 Pytorch框架学习路径(三:线性回归)
线性回归文章目录什么是线性回归 ?线性回归求解步骤代码实现什么是线性回归 ?线性回归是分析一个变量与另外一(多)个变量之间关系的方法线性回归求解步骤代码实现import torchimport matplotlib.pyplot as plttorch.manual_seed(10)lr = 0.05 # 学习率 20191015修改# 创建训练数据x = torch.rand(20, 1) * 10 # x data (tensor), shape=(20, 1
2022-05-29 15:14:32
300
1
原创 Pytorch框架学习路径(二:张量操作)
张量操作文章目录张量操作张量拼接与切分torch.cat()torch.stack()torch.chunk()torch.split()张量索引torch.index_select()torch.masked_select()张量变换torch.reshape()torch.transpose()torch.squeeze()张量数学运算torch.add()张量操作张量拼接与切分torch.cat()1、torch.cat创建张量import torchtorch.manual_seed
2022-05-29 14:24:48
845
原创 Pytorch框架学习路径(一:张量简介与创建)
学习课程来自深度之眼。文章目录张量是什么?Variable数据类型张量的创建Tensor创建一:直接创建torch.tensor创建张量torch.from_numpy创建张量Tensor创建二:依据数值创建torch.zeros()torch.zeros_like()和torch.ones()torch.full()Tensor创建三:依据概率创建torch.arange()torch.logspace()torch.logspace()torch.eye()torch.normal()随机生成Tens
2022-05-28 16:21:35
925
1
原创 Arcface详解(通透、清晰)
文章目录(一)、论文详解1.1、Abstract1.2、Introduction人脸识别中Softmax-based Loss的演化史(一)、论文详解1.1、Abstract1.2、Introduction
2022-05-10 23:20:52
11153
32
原创 人脸识别中Softmax-based Loss的演化史
文章目录参考文献引言Softmax简介归一化(Normalization)Feature Normalization增大内间(Angular Margin)总结本篇博客内容来自于旷视研究院(上海)(MEGVII Research Shanghai)人脸识别研究领域的主要进展之一集中在了 Softmax Loss 的改进之上;在本文中,旷视研究院(上海)(MEGVII Research Shanghai)从两种主要的改进方式——做归一化以及增加类间 margin——展开梳理,介绍了近年来基于 Softm
2022-05-06 14:28:31
333
5
Pytorch数据增强代码。 对应详解博客为<< Pytorch框架学习路径(九:transforms图像增强(一))>>
2022-06-05
人名币二分类完整Python代码(包含数据集) 代码跑不通,可以个博主留言,我会帮你解决问题。
2022-06-03
考研英语一大作文模板(亲测一篇适用于所有历年真题)
2021-08-19
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人