- 博客(45)
- 收藏
- 关注

原创 深度学习中的一些函数
上三角部分是指矩阵的主对角线及其上方的元素(对于每行来说,即在主对角线右侧的元素)。triu 是 “triangular upper” 的缩写,意味着"上三角"。在某些场景下,如果多个对象共享子对象,可能会引起意外的修改(因为这些子对象是共享的)。深拷贝可以防止这种情况。当对象中包含复杂的嵌套结构(如列表、字典)时,深拷贝会递归地复制这些嵌套对象。当你需要确保新对象和原对象完全独立,没有共享的子对象时。矩阵运算中非常常见的操作,用于提取或构建一个矩阵的。
2024-08-28 15:41:07
1137

原创 不常见知识点汇总
而每抛弃一个字符,它都要进行计数和比较字符:如果计数值达到 a 或者被抛弃的字符是 ch,则cin.ignore() 函数执行终止;函数本质:ignore()函数的本质是从输入流中读取并丢弃一定数量的字符,直到达到指定的数量或遇到第二个参数指定的终止字符。注意:可能会有误解认为ignore()会影响后续输入的位置,但实际上它只是简单地跳过当前的一些输入。cin.ignore()函数中有两个参数,分别为。只有输入整型数字才可输出,输入其他类型时无用。它表示从输入流 cin中提取字符,提取的字符。
2024-01-28 18:51:39
424
原创 BERT模型
如图左一为BERT架构,其余两个分别是GPT和ELMo的架构图。注:BLEU:衡量机器翻译的好坏.以下架构图为Transformer文本翻译结构。前馈全连接层模块, 由两个线性变换组成, 中间有⼀个Relu激活函数, 对应的数学公式形式如下:Add & Norm模块接在每⼀个Encoder Block和Decoder Block中的每⼀个⼦层的后⾯. 具体来说Add表示残差连接, Norm表示LayerNorm.输出部分经过的位置编码。参考资料
2024-08-28 17:16:09
1232
原创 seq2seq架构
输入:划分为序列的词向量输出:针对每一个词向量对应的译文从上图中可知, seq2seq模型架构, 包括两部分分别是encoder(编码器)和decoder(解码器)编码器和解码器的内部实现都使⽤了GRU模型, 这⾥它要完成的是⼀个中⽂到英⽂的翻译: 欢迎 来 北京 --> welcome to BeiJing. 编码器⾸先处理中⽂输⼊"欢迎 来 北京", 通过GRU模型获得每个时间步的输出张量,最后将它们拼接成⼀个中间语义张量c。
2024-07-02 15:48:25
411
原创 用RNN构建人名分类器
即随机生成10个国家、10个国家里的名字,并将其转换成张量(对于国家名张量category_tensor,其为一维,方括号内为其在国家名列表中的位置;即,对于GRU模型输出结果,取最大值后,判断‘B’(输入)为国家类别中第13个国家Portuguese中的名字(准确率低):即x和y张量相加,x的每一个值与y的每一个值相加(a的第一行为x的每一个值分别于y的第一个值相加…:y先乘10再进行torch.add(x,y),即相当于torch.add(x,10y)不然会将其当作一个数据(之后被选中时会报错)
2024-06-22 16:23:46
1022
原创 RNN(循环神经网络)
RNN(Recurrent Neural Network), 中文称作循环神经网络,它一般以序列数据为输入,通过网络内部的结构设计有效捕捉序列之间的关系特征,一般也是以序列形式进行输出.RNN的循环机制使模型隐层上一时间步产生的结果,能够作为当下时间步输入的一部分(当下时间步的输入除了正常的输入外还包括上一步的隐层输出)对当下时间步的输出产生影响.结构:三层,输入、输出、隐藏层(循环在隐藏层)图中sigma为sigmiod函数,将值压缩在0-1之间。
2024-05-16 18:18:12
13601
2
原创 神经网络基础
输入数据经过预处理,*W1——>激活函数…*Wn——>激活函数,输出。之后计算损失函数,通过反向传播对每一个参数进行求导,以修正参数值。
2024-04-25 11:30:09
1409
原创 STL常用算法---C++
概述算法主要是由头文件<numeric>组成。是所有STL头文件中最大的一个,范围涉及到比较、 交换、查找、遍历操作、复制、修改等等;<numeric>体积很小,只包括几个在序列上面进行简单数学运算的模板函数;定义了一些模板类,用以声明函数对象。
2024-03-09 10:59:12
993
原创 STL函数对象---C++
可见,sort函数默认为升序是因为调用了关系仿函数less,而想要改变排序顺序也可调用内置仿函数.总结:关系仿函数中最常用的就是greater<>大于。无论一元还是二元运算模板列表只能给一个类型.同认容器部分中vector容器降序的形式。myPrint调用次数为: 5。函数对象(仿函数)是一个。
2024-03-03 16:57:36
1238
原创 STL常见容器(map/multimap容器)---C++
/仿函数public://按照年龄进行排序 降序//指定排序规则//改变排序顺序需要在插入数据之前改变//插入自定义数据Person p1("刘备", 23);Person p2("关羽", 27);Person p3("张飞", 25);Person p4("赵云", 21);it!= m.end();it++) {
2024-03-02 11:13:18
959
原创 STL常见容器(set/multiset)---C++
/仿函数public:////按照年龄进行排序 升序//指定排序规则//内为数类型,不可放置函数名//改变排序顺序需要在插入数据之前改变//插入自定义数据:只需类型+参数s2.insert(Person ("刘备", 23));s2.insert(Person ("关羽", 27));s2.insert(Person ("张飞", 25));s2.insert(Person ("赵云", 21));it!= s2.end();
2024-02-29 17:25:07
844
原创 STL常见容器(list容器)---C++
将Person自定义数据类型进行排序,Person中属性有姓名、年龄、身高、体重;排序规则:按照年龄进行升序,如果年龄相同按照身高进行降序,如果身高相同按照体重升序。public:public://姓名int m_Age;//年龄//身高//体重//仿函数或回调函数elseelseit!= L.end();it++) {cout
2024-02-28 17:37:20
900
原创 STL常见容器(stack、queue容器)---C++
注意:栈顶和栈底位置。可对照如图弹夹理解记忆(先入弹夹的子弹被后发射出来,后入弹夹的子弹先发射出来,只有顶端的子弹出来后,前面的子弹才可发射出来,即只有一个出口)(First In First Out,FIFO)的数据结构,它。(First In Last Out,FILO)的数据结构,它。栈中进入数据称为 —栈中弹出数据称为 —队列中进数据称为 —队列中出数据称为 —
2024-02-27 20:10:18
805
原创 STL常用容器(vector容器)---C++
功能:vector与普通数组区别:动态扩展:功能描述:函数原型:示例:函数原型:示例:功能描述:函数原型:示例:可见,容量开辟的会比实际所需大小大一点。总结:函数原型:示例:总结:函数原型:示例:总结:功能描述:函数原型:示例:vector(v).swap(v);其中vector(v)表示创建一个匿名对象,其大小和容量按照v的实际大小进行初始化(即为什么交换后v的大小和容量都为3)。总结:swap可以使两个容器互换,可以达到实用的收缩内存效果功能描述:函数原型:示例:可见,对于大
2024-02-25 18:18:46
849
原创 STL常用容器(string容器)---C++
对于用“ ”括住的本质是属于const char*类型的,但将其赋值给string类型时,其就变成了string类型。例如:查找find,拷贝copy,删除delete 替换replace,插入insert;string管理char*所分配的内存,不用担心复制越界和取值越界等,由类内部进行负责。总结:string字符串中单个字符存取有两种方式,利用 [ ] 或 at。**总结:**插入和删除的起始下标都是从0开始。按字符的ASCII码。
2024-02-25 17:25:48
823
原创 STL初始---C++
/创建一个vector容器---int数组//向容器中插入数据Person p1("唐僧", 30);Person p2("孙悟空", 99999);Person p3("猪八戒", 9999);Person p4("沙和尚", 999);Person p5("白龙马", 99);//通过迭代器访问容器中的数据---以for循环为例it!= v.end();it++)//*it表示的是< >中的类型元素。
2024-02-24 11:57:15
769
原创 模板(类模板)---C++
对于普通类成员函数,当创建对象时就可以调用成员函数;对于类模板,利用其创建对象后,如果其成员函数是一开始就创建,则创建对象后就可调用,但对于func2()函数却不可调用,只有在创建相应对象后才可以调用相应成员函数.写到同一个文件中,并更改后缀名为.hpp,hpp是约定的名称,并不是强制。总结:建议全局函数做类内实现,用法简单,而且编译器可以直接识别。T —通用的数据类型,名称可以替换,通常为大写字母。类模板中成员函数类外实现时,需要加上模板参数列表。注意与普通类成员函数的类外实现对比记忆.
2024-02-22 20:56:25
1057
原创 模板(函数模板)---C++
它代表一个未知的具体类型,这个类型在编译时被指定,而不是在运行时。泛型类型不是具体的类型,而是类型的模板,类似于对象模板的概念。泛型编程的核心在于使用参数化类型,即类型参数,来定义可以操作多种不同数据类型的通用数据结构和算法。如果模板的数据类型传入的是像Person类这样的自定义数据类型,无法正常运行;**注意:**对于具体化的模板,要先有普通函数模板才可实现,否则报错。建立一个通用函数,其函数返回值类型和形参类型可以不具体制定,用一个。T — 通用的数据类型,名称可以替换,通常为大写字母。
2024-02-19 21:37:04
1163
原创 多态应用实例
如果想扩展新的功能,不需要修改源码,遵循开发中开闭原则,只需在补充所需对象,直接调用即可。电脑主要组成部件为 CPU(用于计算),显卡(用于显示),内存条(用于存储);利用多态技术实现本案例,提供抽象制作饮品基类,提供子类制作咖啡和茶叶。制作饮品的大致流程为:煮水 - 冲泡 - 倒入杯中 - 加入辅料。创建电脑类提供让电脑工作的函数,并且调用每个零件工作的接口;总结:C++开发提倡利用多态设计程序架构,因为多态优点很多。开闭原则:对扩展进行开放,对修改进行关闭。,例如Intel厂商和Lenovo厂商…
2024-01-24 17:49:58
445
原创 类和对象(封装和对象特性)---C++
* 将**属性和行为**作为一个整体,表现生活中的事物;* 将属性和行为加以**权限控制**。构造函数与析构函数。
2024-01-12 15:35:48
1031
1
原创 引用和函数提高---C++
函数名可以相同,提高复用性;同一个作用域下;函数名称相同;函数参数类型不同或者个数不同或者顺序不同。函数的返回值不可以作为函数重载的条件。//函数重载需要函数都在同一个作用域下cout << "func 的调用!" << endl;cout << "func (int a) 的调用!" << endl;cout << "func (double a)的调用!" << endl;cout << "func (int a ,double b) 的调用!" << endl;
2024-01-10 18:12:36
890
1
原创 内存分区模型---C++
可以看出:全局区包含:全局变量、静态变量、常量(字符串常量、const修饰的全局变量(全局常量)); 注意事项:不要返回局部变量的地址,栈区开辟的数据由编译器自动释放。的,共享的目的是对于频繁被执行的程序,只需要在内存中有一份代码即可; 全局区还包含了常量区, 字符串常量和其他常量也存放在此.不在全局区:局部变量、const修饰的局部变量(局部常量)。的,使其只读的原因是防止程序意外地修改了它的指令。 利用new创建的数据,会返回该数据对应的类型的。 堆区开辟的数据,由。操作符在堆区开辟数据。
2024-01-10 17:21:32
1021
1
原创 基础知识---C++
命名空间是C++的一种机制,用来把单个标识符下的大量有逻辑联系的程序实体组合到一起。C++标准程序库中的所有标识符都被定义于一个名为std的namespace中。#include< iostream>是标准的C++头⽂件,任何符合标准的环境都有这个头⽂件。技巧:看const右侧紧跟着的是指针还是常量, 是指针就是常量指针,是常量就是指针常量。提示:在给变量或者常量起名称时候,不要用C++的关键字,否则会产生歧义。建议:给标识符命名时,争取做到见名知意的效果,方便自己和他人的阅读。总结2:创建结构体变量时,
2024-01-09 21:38:43
1388
原创 文件操作---C语言
磁盘上的文件是文件。但是在程序设计中,(从文件功能的角度来分类)我们一般谈的文件有两种:程序文件、数据文件。功能函数名适用于字符输入函数fgetc所有输入流字符输出函数fputc所有输出流文本行输入函数fgets所有输入流文本行输出函数fputs所有输出流格式化输入函数fscanf所有输入流格式化输出函数fprintf所有输出流二进制输入fread文件二进制输出fwrite文件。
2023-12-30 17:33:10
948
1
原创 动态内存管理---C语言
有时候我们需要的空间大小在程序运行的时候才能知道,而且可能想要进行扩容或缩容,那数组的编译时开辟空间的方式就不能满足了。这时就只能利用动态内存开辟了。但是被static修饰的变量存放在数据段(静态区),数据段的特点是在上面创建的变量,直到程序结束才销毁所以生命周期变长。如果将动态开辟的空间地址放在结构体中,依次实现柔性数组的形式,是不是也可以呢?实际上普通的局部变量是在栈区分配空间的,栈区的特点是在上面创建的变量出了作用域就销毁。这个函数调整原内存空间大小的基础上,还会将原来内存中的数据移动到新的空间。
2023-12-28 16:25:14
894
1
原创 库函数---C语言
strcpy详解源字符串必须以 ‘\0’结束(源字符串中间含有’\0’是时,只拷贝到’\0’之前的字符串)。会将源字符串中的 ‘\0’ 拷贝到目标空间。目标空间必须足够大,以确保能存放源字符串。目标空间必须可变(可被拷贝)。即不可为常量字符串.strncpy详解拷贝num个字符从源字符串到目标空间。如果源字符串的长度小于num,则拷贝完源字符串之后,在目标的后边追加0,直到num个.int main()//不足补0return 0;
2023-12-17 18:19:14
1025
1
原创 数据的存储---C语言
大端(字节序)存储模式:是指数据的低位字节序的内容保存在内存的高地址中,而数据的高位字节序的内容保存在内存的低地址中;小端(字节序)存储模式:是指数据的低位字节序的内容保存在内存的低地址中,而数据的高位字节序的内容保存在内存的高地址中。(VS2022为小端存储)//判端大小端存储int a = 1;//将a的地址强制为字符型(每次访问一个字节),再进行解引用;小端返回1,大端返回0int main()printf("小端存储\n");elseprintf("大端存储\n");return 0。
2023-12-11 21:51:00
882
原创 调试---C语言
Debug 通常称为调试版本,它包含调试信息,并且不作任何优化,便于程序员调试程序。Release 称为发布版本,它往往是进行了各种优化,使得程序在代码大小和运行速度上都是最优的,以便用户很好地使用。总结:相同代码在resease版本下所占储存空间更小。
2023-12-08 21:43:01
929
原创 自定义类型(结构体、枚举、联合体)---C语言
结构体是一些值的集合,这些值称为成员变量。结构体的每个成员可以是不同类型的变量。简而言之,结构体就是相同或不同类型构成的变量集合,用来表示一些复杂信息例如要描述一个学生,会有学生姓名、年级、性别、学号等,而这些信息的类型不同,但有是一个整体,这时就要用结构体表示。//第一种全局变量struct stu//名字int age;//年龄//性别//学号}s1;//声明的同时创建变量//创建结构体变量s2//第二种局部变量struct stu//名字int age;//年龄//性别。
2023-12-07 15:33:37
450
1
原创 指针---C语言
指针是一个特殊的变量,它里面存储的数值被解释成为内存里的一个地址。要搞清一个指针需要搞清指针的四方面的内容:指针的类型、指针所指向的类型、指针的值或者叫指针所指向的内存区、指针本身所占据的内存区。让我们分别说明。
2023-12-06 12:02:00
979
1
原创 操作符小结---C语言
3、位操作符3.1按位与4、赋值操作符求变量(或类型)所占空间的大小,单位是字节。5.2综合应用将一个数的某一位改变为1或0,其余位不变。8、条件操作符10、下标引用、函数调用和结构成员10.1下标引用10.2函数调用10.3结构体11、表达式求值11.1隐式类型转换11.1.1例一11.1.2例二11.3操作符的属性
2023-11-30 18:46:49
953
原创 数组---C语言
这是因为数组传参传输的是数组首元素地址,而我的电脑是64位的,故 sz = sizeof(arr) /sizeof(arr[0])中sizeof(arr)=8,sizeof(arr[0])=4(对于32位计算机sz为1,即4/4)。效果同一维数组,说明二维数组在内存中也是连续存储的(对于3行4列的二维数组,地址先由第0行的4个元素地址从小到大排列,之后第1行,再第2行的元素);数组的下规定是从0开始的,如果数组有n个元素,最后一个元素的下标就是n-1。与一维数组类似,不同的是二维数组有行数、列数。
2023-11-23 11:04:16
930
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人