![](https://img-blog.csdnimg.cn/20190918140053667.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
C/C++
文章平均质量分 56
翁凯,侯捷,网络,梳理总结。
tensor.shape
这个作者很懒,什么都没留下…
展开
-
C++细节
面向对象的编程中,类(Class)是创建对象的蓝图或模板,它包含了数据(通常称为属性或变量)和行为(通常称为方法或函数)。将数据封装为私有(private)成员,并通过公共(public)成员函数来访问和修改这些数据,是实现封装性的重要方式,也是面向对象编程的三大基本特性之一(封装、继承、多态)。当创建类的新对象时,构造函数会被自动调用。它用于初始化对象的属性或状态。构造函数的名字必须与类名相同,且不能有返回类型(即使是void)。它可以有参数,用于在创建对象时提供初始值。原创 2024-03-25 19:38:43 · 941 阅读 · 0 评论 -
.和->的区别
使用 . 运算符当你有一个对象的直接引用时,你可以使用 . 运算符来访问其成员。}在这个例子中,obj 是一个 MyClass 类型的对象,我们直接使用 . 运算符来设置 myVar 的值。使用 -> 运算符当你有一个指向对象的指针时,你需要使用 -> 运算符来访问其成员。-> 运算符用于通过指针访问对象的成员。在C++中,. 和 -> 都是用于访问对象的成员(包括成员变量和成员函数)的运算符,但它们之间有一个关键的区别:. 用于直接访问对象的成员,而 -> 通常用于通过指针来访问对象的成员。原创 2024-03-23 17:58:12 · 302 阅读 · 0 评论 -
公司面经2024
通信协议用过哪些,介绍一下?spi起始信号是怎么样的?(起始信号忘记了),iic几根线?我说了can,can传输距离为什么长,为什么抗干扰能力强?Linux建立tcp连接的过程是怎么样的?你确定socket只能用于不同主机之间的通信吗?你说你项目用到了双向链表,你介绍一下,双向链表的增删查找复杂度如何?单片机:ADC和DAC的区别?tcp和udp的区别?你确定tcp是点对点的通信吗?你熟悉的数据结构有哪些?说一下友元函数,是单向的吗?除了32和51单片机你还用过哪些单片机?多进程和多线程区别?原创 2024-03-19 21:06:26 · 301 阅读 · 0 评论 -
C++之面向对象
但是您在基类中又不能对虚函数给出有意义的实现,这个时候就会用到纯虚函数。原创 2024-03-12 18:24:42 · 778 阅读 · 0 评论 -
llama2c(4)之forward、sample、decode
*S1:**只保留概率大于等于 (1 - topp) / (n - 1) 的词汇,并将其对应的索引和概率存入 probindex 结构体数组。S2:和上面sample_mult函数语言,这儿只是对筛选后的probindex的里面概率进行累加,如果大于了topp,返回idx。**确定next,**如果还在input prompt,那么下一个token就是next;不是,才用sample得出next。调用sample_argmax选取返回概率最高的那个索引。2)_2 其他,top-p策略。原创 2024-03-09 21:51:00 · 520 阅读 · 0 评论 -
llama2c(3)之tokenizer和encode
tokenizer的model不同于Transformer的model,Transformer的model是一些权重参数,tokenizer的model是一些分词,将一个句子分成分词的中介(模型)。,具体就是tokenizer.py文件打印出来的如token数组所示是从tokenizer_path把Tokenizer 结构体中的内容填满2.1.2 build中的tokenizer一个数字和一个0搭配好函数“fread函数原型size_t fread ( void * buffer原创 2024-03-09 20:42:56 · 1308 阅读 · 0 评论 -
llama2c(2)之Transformer结构体的填充
此时将bin文件映射到内存的config,weight,fd,data,file_size 全部赋值给TransformerWeights结构体的参数了。现在的transformer如下。原创 2024-03-08 17:07:44 · 384 阅读 · 0 评论 -
llama2c(1)之export
整个bin文件排布是256kb的header + 权重。原创 2024-03-08 13:02:14 · 440 阅读 · 0 评论 -
llama2.c的一些常规操作
【代码】llama2.c的一些常规操作。原创 2024-03-07 19:14:21 · 379 阅读 · 0 评论 -
llama.c代码2
总结来说,这段代码片段是调用encode函数来对给定的prompt文本进行token化处理,并将结果token序列存放在prompt_tokens数组中,同时通过num_prompt_tokens返回最终生成的token数量,且在这个过程中会在token序列开头添加起始符(BOS),但不会添加结束符(EOS)。对于每个完整的Unicode码点,查找其在排序后的词汇表中的索引。然后,函数尝试将tokens数组中的连续token进行合并,通过比较合并后的token在词汇表中的得分来决定是否进行合并。原创 2024-03-04 16:29:27 · 403 阅读 · 0 评论 -
llama.c中的代码
也即是t->sorted_vocab是排序好的词汇表,str_buffer是prompt中的一个个字母。用prompt中的字母在t->sorted_vocab词汇表找id,然后给tokens。对输入文本进行编码前初始化和处理token数组。排序后:地址,字母,id。原创 2024-03-04 14:03:03 · 357 阅读 · 0 评论 -
gdb调试快捷键
【代码】gdb调试快捷键。原创 2024-03-04 13:20:53 · 373 阅读 · 0 评论 -
visual studio报错
问题:error LNK2019: 无法解析的外部符号 __imp__fprintf参考:https://bbs.csdn.net/topics/392356806解决办法:你是不是依赖了不同版本vs开发的库?可以尝试改用同版本的VS试试,或者直接在链接器里加上legacy_stdio_definitions.lib这个库的依赖试试。谢谢互联网解决了我的问题。...原创 2021-11-03 20:08:13 · 227 阅读 · 3 评论 -
归并排序算法
理论#include<iostream>#include<vector>#include<algorithm>using namespace std;//相邻两个有序子序列的合并//所以每一次都是两个合并,所以要递归很多轮,可以调试看看,然后结合原理,你就懂了代码void Merge(vector<int>& v, int left,int right,int mid){//将t[left,mid]和t[mid+1,right]归并形原创 2021-07-23 19:58:01 · 54 阅读 · 0 评论 -
选择排序算法
1.简单选择排序【算法步骤】①将第一个作为最小值,并将下标赋值给k②在后面找出比它小的值,赋为最小值,并将下标赋值给k,一直到列表结束,然后交换。③重复①②#include<iostream>#include<vector>#include<algorithm>using namespace std;void SelectSort(vector<int>& v){ int i , j; for (i = 0; i < v.原创 2021-07-22 20:27:37 · 61 阅读 · 0 评论 -
排序算法梳理
1.排序算法(1)插入排序:直接插入排序、折半插入排序、希尔排序(2)交换排序:冒泡排序、快速排序(3)选择排序:简单选择排序、堆排序(4)归并排序:2-路归并排序(5)基数排序2.插入排序每一趟将一个待排序的记录, 按其关键字的大小插入到已经排好序的一组记录的适当位置上,直到所有待排序记录全部插入为止2.1直接插入排序【算法步骤】①哨兵:将待排序的数字记录为i,将其赋值给哨兵temp。②比较后移:取整型变量j,从j=i-1的位置开始与temp比较,找到比v[i]小的数。③插入:将j原创 2021-07-16 17:02:57 · 56 阅读 · 0 评论 -
结构体待续
1.引言C/C++数组可存储相同类型的数据变量,而结构体是可以存储用户自定义的数据类型,存储不同类型的数据。2. 结构体2.1结构体的定义/*结构体定义struct 结构体名{ 结构体成员列表};*/struct student{ char name; int age; int score;}s1,s2;结构体名为student,该结构由3个成员组成。结构体是数目固定,类型不同的若干变量的集合。2.2 创建结构变量2.3 结构变量成员的表示方法结构变量名.成员名原创 2021-07-16 10:30:45 · 57 阅读 · 0 评论 -
vector
1.容器的类别容器分为顺序容器和关联容器。而关联容器里面分为有序和无序的。如图一所示。原创 2021-07-15 16:38:33 · 102 阅读 · 0 评论 -
visual studio调试
参考博客:①流程:https://lauzyhou.blog.csdn.net/article/details/65494048②窗口:https://blog.csdn.net/u010690818/article/details/73293471③调试键:https://blog.csdn.net/sunshihua12829/article/details/45869805④代码改写的B站视频学习资料的里面的代码1.编写代码写一个带有子函数的代码,方便后面区分F10与F11的功能//ma原创 2021-07-13 20:00:51 · 188 阅读 · 0 评论