09 2023 档案
摘要:1 栈与队列理论基础 队列先进先出,栈先进后出;不允许有遍历行为,不提供迭代器 2 用栈实现队列 题目:请你仅使用两个栈实现先入先出队列。队列应当支持一般队列支持的所有操作(push、pop、peek、empty): 实现 MyQueue 类: void push(int x) 将元素 x 推到队列
阅读全文
摘要:BERT问答 BERT分为哪两种任务,各自的作用是什么; 在计算MLM预训练任务的损失函数的时候,参与计算的Tokens有哪些?是全部的15%的词汇还是15%词汇中真正被Mask的那些tokens? 在实现损失函数的时候,怎么确保没有被 Mask 的函数不参与到损失计算中去; BERT的三个Embe
阅读全文
摘要:1 反转字符串 题目:编写一个函数,其作用是将输入的字符串反转过来。输入字符串以字符数组 s 的形式给出。 不要给另外的数组分配额外的空间,你必须原地修改输入数组、使用 O(1) 的额外空间解决这一问题。 1. 双指针 class Solution: def reverseString(self,
阅读全文
摘要:1 哈希表理论基础 1.1 哈希表 哈希表是根据关键码的值而直接进行访问的数据结构。一般哈希表都是用来快速判断一个元素是否出现集合里。 1.2 哈希函数 哈希函数如下图所示,通过hashCode把名字转化为数值,一般hashcode是通过特定编码方式,可以将其他数据格式转化为不同的数值。如果hash
阅读全文
摘要:1 链表理论基础 链表是一种通过指针串联在一起的线性结构,每一个节点由两部分组成,一个是数据域一个是指针域(存放指向下一个节点的指针),最后一个节点的指针域指向null(空指针的意思)。链表的入口节点称为链表的头结点也就是head。 链表中的节点在内存中不是连续分布的 ,而是散乱分布在内存中的某地址
阅读全文
摘要:1 数组理论基础 数组是存放在连续内存空间上的相同类型数据的集合。 数组下标都是从0开始的 数组内存空间的地址是连续的 在删除或者增添元素时,需要移动其他元素的地址: C++要注意vector 和 array的区别,vector的底层实现是array,严格来讲vector是容器,不是数组。 数组的元
阅读全文
摘要:1 时间复杂度 1.1 知识点 时间复杂度是一个函数,它定性描述该算法的运行时间。 通常会估算算法的操作单元数量来代表程序消耗的时间。假设算法的问题规模为n,那么操作单元数量便用函数f(n)来表示,随着数据规模n的增大,算法执行时间的增长率和f(n)的增长率相同,这称作为算法的渐近时间复杂度,简称时
阅读全文
摘要:Attention Is All You Need 摘要 针对序列转录模型,提出一个新的简单网络结构Transformer,基于纯注意力机制构造的encoder-decoder,不用卷积和RNN,并行度更高训练更快。 导言 当前(2017)主流的序列转录模型:RNN,LSTM,GRU RNN缺点:从
阅读全文
摘要:在看Transformer之前,建议先学习一下Self-attention。 同样,这边笔记是参考李宏毅老师的课程和ppt,感兴趣的可以去看原视频~ 补充了Transformer论文精读笔记,建议结合本文食用: ) Sequence-to-Sequence 没错!Transformer是一个sequ
阅读全文
摘要:最近想学点NLP的东西,开始看BERT,看了发现transformer知识丢光了,又来看self-attention;看完self-attention发现还得再去学学word embedding... 推荐学习顺序是:word embedding、self-attention / transform
阅读全文
摘要:开始跟着代码随想录重新学算法了,计划是按照它的目录一个专题一个专题地刷。 我的文章目录会放在合集里面,按照自己的进度更新,整理出来一些有价值的基础知识和题解代码。使用语言是python,但知识点部分也会涉及C++。 欢迎阅读点赞~
阅读全文