- 博客(52)
- 收藏
- 关注
原创 算法笔记刷题日记——3.简单入门模拟 3.2 查找元素 3.3 图形输出 3.4 日期处理
1.需要注意查找存在查找成功和查找失败的情况,往往对应的输出格式不一致,需要特别考虑,如题1.图形输出主要存在直接输出和二维数组存储后输出的情况,后者适用于较复杂的应用。
2024-02-06 22:40:50 646
原创 算法笔记刷题日记——3.简单入门模拟 3.1简单模拟
1.int long long类型变量的数据范围int的数据范围是,数量级范围为long long的数据范围是,数量级范围为2.输出变量名错误,手误,复制粘贴的时候尤其容易犯这错误3.边界情况的考虑B10084.字母与数字的转换,A1042和B1018的总结,如果涉及到字母和数字的结合处理,同时字母存在一定的规律,可以考虑把字母转换为数字,统一运算。%c可以读入空格和换行符getchar()可以读入空格和换行符,常用于读取换行符,常见应用如下输入样例2A Bgetchar();
2024-02-04 23:06:08 1724
原创 算法笔记刷题日记——2.C_C++在ACM中的常用语法
这学期选了ACM课,但平时缺乏练习,不怎么刷题,因此期末考试成绩并不理想。考虑到之后的考研复试中包含机试,且计试可以算是非常重要的印象分,因此我打算寒假刷一下算法笔记,备战3月初的PAT甲级和3月末的CCF CSP认证考试,为后续考研复习数据结构等也算是打下一个良好的基础。1.int a,b=-1是正确的语法。
2024-02-01 00:04:12 855
原创 实验一:RegExp转NFA
如果当前的优先级小于等于栈顶元素,则退出栈内元素写上,直到栈顶元素的优先级小于该元素,并入栈。//status_new标记当前最新状态编号。,则依次退出栈内元素写上,直到出栈符号为。//当前符号优先级小于等于栈顶优先级元素。//退栈直到当前符号优先级大于栈顶元素。//mid2after 入栈操作。//保存子图的开始状态和结束状态。////test 初始化NFA。//判断是否添加连接符^//pop栈内剩余元素。//后缀表达式转NFA。//且防止空栈的情况。//重新配置全局变量。
2024-01-30 08:58:39 1000
原创 实验一:NFA转DFA
思路:move(I,alpha)是对于I集合中的每个状态s,面对非空输入符号alpha,能转化到的状态集合,通过求解move(I,alpha)后,我们就能利用之前的e-closure求出e-{move(I,alpha)},也就是状态子集。TIPS:这是非常重要的一步,也是最容易出错的一步,要谨慎考虑。(具体考虑的细节可以在代码中查看,但大体的思路就到这里了,建议看了这段思路后读者自己思考下如何实现,不要马上看代码)e-closure(s)是状态s经由e边可到达的所有状态的集合。1.NFA转DFA原理。
2024-01-30 08:56:01 413
原创 实验一:FOLLOW集
如果非终结符后面的符号串的 FIRST 集合包含空串,或者该非终结符是产生式的最后一个符号,则将产生式左侧非终结符的 FOLLOW 集合加入该非终结符的 FOLLOW 集合。*如果非终结符后面是另一个非终结符,则将后者的 FIRST 集合(除去空串)加入前者的 FOLLOW 集合。*遍历每个非终结符的产生式,对于产生式中的每个符号,特别是非终结符,需要更新其 FOLLOW 集合。*如果产生式中的某个非终结符后面紧跟着终结符,则将该终结符加入非终结符的 FOLLOW 集合。//遍历非终结符号*i的产生式。
2024-01-30 08:55:14 650
原创 实验一:LL(1)预测分析表设计与实现
如果 FIRST 集合包含空串($),则将产生式左侧非终结符的 FOLLOW 集合也并入 SELECT 集合中,并从 SELECT 集合中移除空串。*例如,如果A->α 的 SELECT 集合包含终结符b,则将α 填入表中M[A][b] 的位置。*对于每个产生式,计算其 SELECT 集合,这个集合决定了在预测分析表中的填充位置。*对于 SELECT 集合中的每个终结符,将产生式填入预测分析表的对应位置。*对于每个产生式,首先计算其首字符串(即产生式右侧)的 FIRST 集合。
2024-01-30 08:54:22 821
原创 实验三:借助Flex熟悉SysY词法分析
枚举 TOKEN 定义了各种可能的词法单元类型,例如类型(TYPE)、关键字(KEYWORD)、比较运算符(COMPARISON)、运算符(OPERATOR)、标识符(ID)、常量(CONST)等。为八进制常量、十六进制常量和浮点数定义了模式,并处理了非法八进制和十六进制常量的情况。ID(标识符)匹配以字母或下划线开头,后跟任意数量的字母、数字或下划线的字符串。对于不符合任何已定义模式的字符,词法分析器将其视为错误,并输出相应的错误信息。对于八进制和十六进制常量,执行字符串到数值的转换,并打印转换后的值。
2024-01-30 08:52:48 462
原创 实验一:FIRST集
如果第一个符号是非终结符,则需要合并这个非终结符的 FIRST 集合到当前非终结符的 FIRST 集合中。如果该非终结符的 FIRST 集合包含空串(表示为$),则还需考虑下一个符号。*初始化标志位: 函数中有一个flag 标志位,用来检测 FIRST 集合在一轮迭代中是否有更新。*更新检查: 在每次迭代的最后,调用check 函数来进一步更新 FIRST 集合。*如果产生式的第一个符号是终结符,则直接将其加入该非终结符的 FIRST 集合。//flag为1表示first集有更新。
2024-01-30 08:51:37 1096
原创 实验3:利用Linux的消息队列通信机制实现三个线程间的通信
POSIX信号量是Pthread线程库提供的一种同步机制,包括无名信号量和有名信号量两种机制。无名信号量,常用于多线程间的同步,也可用于相关进程间的同步(需置于相关进程间的共享内存区中)。有名信号量通过IPC名字进行进程间的同步,特点是把信号量保存在文件中,可用于线程、相关进程和不相关进程间的同步。创建无名信号量,sem(信号量名称),pshared一般为0(多线程间的同步),value(信号量的初始值)1.pstree -p显示系统进程pid。
2024-01-30 08:45:43 1626
原创 resNet
对于一个拥有d维的输入X,对它的每一个维度进行标准化处理,μ和σ是在正向传播的过程中学习得到的,而β和γ是在反向传播的过程中学习得到的,γ的初始值是1,β的初始值是0。1.训练时的training参数设置为True,验证时设置为False,在Pytorch中可以通过创建模型的model.train()和model.eval()控制。*方法二修改原模型的最后一层,也使得我们不能在最后一层载入我们的模型,但是效果也不错。*原先小数据集,我们使用一个较大的网络进行学习,容易过拟合,效果不佳。
2023-12-19 09:56:25 406
原创 实验2:内核编译及添加系统调用
内核为所有的PID Namespace维护了一个树状结构,最顶层的是系统初始化创建的,被称为Root Namespace,由它创建的新的PID Namespace成为它的Child namespace,原先的PID Namespace成为新创建的Parent Namespace,这种情况下不同的PID Namespace形成一个等级体系:父节点可以看到子节点中的进程,可以通过信号对子节点的进程产生影响,反过来子节点无法看到父节点PID Namespace里面的进程。查看内核版本,变化即成功;
2023-11-06 13:20:50 191
原创 ACM算法笔记 03 贪心算法
1.贪心算法不从整体上考虑,而是求出在某种意义上的当前局部最优解,但要求当前的局部最优解就是全局整合后的全局最优解(需要证明,但一般很难,可以考虑反证法)。2.证明贪心算法的局部最优解的合理性:*方法1:枚举*方法2:反证法3.贪心算法常见的操作:排序*qsort C。
2023-10-31 22:02:48 92
原创 2021版吴恩达深度学习课程Deeplearning.ai Day29 10.4
1.输入输出规范模型的输入是模型的输出是一系列的边界框,边界框的表现形式是,c表示边界框表示的类别2.锚框锚框的选择是通过寻找训练数据的特点,我们一共寻找了5个锚框,存储在中,锚框对应的在输出中的维度是。3.YOLO模型的架构,维度4的85对应的是4.ENCODING5.非极大值抑制。
2023-10-04 23:13:57 94
原创 2021版吴恩达深度学习课程Deeplearning.ai Day28 10.3
通过从目录中读取文件的时候,目录中文件分为*如果需要区分训练集和测试集,需要,并指定子集subset。*为防止重叠,需要设置seed保持一致。*此时如果,我们会得到shape为。
2023-10-03 21:33:43 110
原创 ACM算法笔记 02 基础数学 快速幂 循环节 溢出
辗转相除原理,a是x的倍数,b是x的倍数,则a+b也是x的倍数。*这道题关键就是1 1是循环的关键位置,需要判断有没有1 1。*由上述可见,其中比较关键的步骤就是进行参数传递交换。取余数,发现循环节,因此连续两项例举余3后的和。1.一开始使用的代码,但是内存超限,没有过。种组合,所以在50的时候一定会回到1的位置。,刚好是int类型的有符号整数的最大值。,利用这一原理,我们得到辗转相除法。的倍数,我们取余下的部分作为新的。*对于指数奇数的情况,提取底数。,我们取其中较大的数作为。,首先使值的范围回到。
2023-10-01 21:29:54 192
原创 2021版吴恩达深度学习课程Deeplearning.ai Day25 9.30
1.*图片分类:输入一张图片到多层卷积网络,最终输出一个特征向量到softmax层,预测图片分类。比如,我们需要识别汽车、人、摩托车和背景,这四类就是我们可能输出的结果。*定位分类:在图片分类的基础上,多输出几个数据标注物体的位置(此时我们讨论的定位分类问题一般图片中只有一个需要识别的物体)。*对象检测:一般会检测多个物体的定位。2.我们定义目标的位置通过,图片的左上角定义为(0,0),右下角定义为(1,1)。3.定义标签y*标签y的输出包含了pc表示图片中出现检测对象的概率,1表示出现,0。
2023-10-01 21:29:03 78
原创 2021版吴恩达深度学习课程Deeplearning.ai Day21 9.26
1.LeNet-52.AlexNet3.VGG-161.*使直接与相连,的输出为。*如图,2层神经网络构成了一个残差块。2.*在理论上,随着我们层数的加深,训练集的误差应该减小,但在实践中,训练集的误差反而变大了;而残差网络可以很好解决这一问题,它使得随着层数的加深,训练集的误差在训练中能够不断的减小。1.*比如当我们使用L2正则化的情况下,可能相对来说会很小,此时,如果,那么就会导致我们的残差块,维持不变。*由此可见,残差块学习恒等函数,其实难度并不大,只需要即可,而且,对于我们的神经网络而言,添加恒等函
2023-09-27 17:55:35 122
原创 2021版吴恩达深度学习课程Deeplearning.ai Day18 9.23
1.*目标识别:识别出物体的类型*目标检测:检测物体的位置*图片风格迁移:混合2种图片的风格。
2023-09-24 08:35:02 65
原创 2021版吴恩达深度学习课程Deeplearning.ai Day14 9.19
1.*复杂的深度学习,以语音识别为例子,我们往往需要首先提取特征,其次得到音节细节,渐渐组成单词,到识别句子,获得最终输出,中间经历很多步骤。*端到端的深度学习就是我们只需要输入x,就能得到y,省去大量中间步骤,但它需要的数据往往很大。2.*但有时端到端的深度学习并不能很好解决问题,如人脸识别,如果输入时从远处走进的人(人可能会有不同的角度走进),输出是对应的人的身份,这往往很困难,需要大量数据。*但如果分步解决,首先裁剪放大人脸,其次再进行对应,就能得到很好的效果。
2023-09-19 20:04:48 118
原创 2021版吴恩达深度学习课程Deeplearning.ai Day10 9.15
今日只有下午有一节操作系统课,别的时间都可以自由安排。我计划早上和晚上学习深度学习,下午操作系统课上完之后去健身房锻炼一下下半身腿部。最近压力有点太大需要释放一下,感觉自己目前只有一个比较拿得出手的全栈作品(网上书城),还是有一些焦虑的。我想要这学期能够在科研方面有一些成果,所以现在要好好学习深度学习的课,尽早完成。别的都不说了,加油吧,大三要跑起来了!
2023-09-17 18:20:40 50
原创 2021版吴恩达深度学习课程Deeplearning.ai Day5 9.10
9.9白天去叔叔家休息了一天,9.10中午和哥哥一起聚餐,为我9.11的生日庆祝一下。开学第一天生日,希望能给这个学期带来一些好运吧。
2023-09-15 08:38:45 47
原创 2021版吴恩达深度学习课程Deeplearning.ai Day3 9.8
1.*选择tanh函数作为激活函数可以使得它的均值接近0,比sigmoid函数好但如果针对二元分类问题,选择sigmoid函数是不错的选择ReLU函数比tanh和sigmoid函数都要好,因为它有一部分的导数不是0,从而帮助求导速度更快,da/dz!=02.不同激活函数之间的优缺点*sigmoid基本不使用,只用于输出二元分类的输出层*sigmoid基本不使用的原因是tanh的优越ReLU是常用的激活函数。
2023-09-10 19:36:28 47
原创 2021版吴恩达深度学习课程Deeplearning.ai Day2 9.7
1.神经网络的计算由前向传播计算神经网络的输出,紧接着由反向传播计算梯度或导数。计算图解释了为什么用这种形式组织计算。如下是一个用于计算输出的计算图。
2023-09-08 09:33:16 90
原创 2021版吴恩达深度学习课程Deeplearning.ai Day1 9.6
1.深度学习的术语常用于形容训练神经网络的过程,有时特指大规模的神经网络训练。2.如图所示是一个最简单的神经网络,输入是x=size,输出y=price,中间的神经元是relu函数,,也指修正线性函数单元(因为此时我们规定房价不为负)。3.*如图是一个神经网络,它的架构是输入层、隐藏层、输出层。中间的隐藏层,其实能够获取到来自上一层的每一项特征,但在我们最终的依赖关系中,是否使用它,完全取决于神经网络的训练,我们只需要管输入什么和输出什么即可。
2023-09-07 08:52:40 56
原创 吴恩达机器学习 目标18天完成-捕鱼4 9.2+9.6 Day23....Day27
1.是由s和a组成的输入变量,a采用独热编码2.我们通过神经网络训练Q*的值,以便更好预测。这一算法称为DQN,因其使用和来训练Q函数。*随机初始化神经网络的参数去预测Q(s,a)*在神经网络中take actions获取训练集合*训练神经网络*更新神经网络*重复操作。
2023-09-06 15:03:47 52
原创 吴恩达机器学习 目标18天完成-捕鱼3 8.31+9.1 Day21+22
1.*如果监督学习想要应用于自主飞行的飞机,那么我们需要一个理想的数据集,方便我们从状态s映射到合理的a行为。但实际过程中的s是无法确定的,没有规律可复制,因此其对应的a的映射也就不具有泛化性。所以,监督学习应用于此并不合适。*不同于监督学习的(复制性),强化学习能够让飞机自主飞行,它的关键在于输入的,告诉它什么时候做得好,什么时候做得不好。算法会通过reward自动找出合适的action去一步步做的更好。1.状态-动作价值函数的符号是Q(s,a),它返回我们在状态s下进行行为a。
2023-09-02 08:52:15 66
原创 吴恩达机器学习 目标18天完成-捕鱼1 8.29 Day19
1.不同于监督学习,有(x,y)特征数据和目标数据的输入,无监督学习,只有(x,)特征数据的输入,我们一般研究特征数据的共性特点,实现聚类。2.聚类的应用。
2023-08-31 14:08:33 44
原创 吴恩达机器学习 目标18天完成 8.28 Day18
1.决策树构建的关键,一在于确定什么特征作为决策节点,能够得到最好的信息增益,二是确定什么时候停止分裂(如规定最大深度/分类纯度达100%等即刻返回return)。2.计算信息增益,(1.需要计算记录出当每个特征作为决策节点的时候的信息增益值,并保存对应的特征和对应的子树),(2.信息增益等于父节点的熵-子节点的加权平均熵),(3.熵对应计算公式,即以纯度为x计算)。3.(此处代码完整版已经上传至csdn)需要注意的是,一定要计算,这非常关键4.分裂子树是决策树递归的重要一环。
2023-08-29 09:33:22 89
原创 吴恩达机器学习 目标18天完成 8.24 Day14
1.模型选择*可以添加一个新参数d,用于决定多项式选择*但是事实证明,这样的程序是存在缺陷的,因为我们判断哪种类型的多项式最合理是建立在test测试集上的,可能是对泛化数据的乐观估计,因此,需要使用交叉验证测试集的方法2.训练集/交叉验证集/测试集,分别用表示3.*我们可以用train进行模型训练*cv进行交叉验证*test进行测试泛化误差*由于w/b等数据的参数不是建立在test测试集上的,因此使用它是最合适的测试集。
2023-08-28 16:51:47 60 1
原创 吴恩达机器学习 目标18天完成 8.22 Day12
1.实现步骤*1.构建神经网络层,告诉Tensorflow如何实现推理*2.指定loss损失函数*3.训练模型。
2023-08-23 09:15:10 44
吴恩达机器学习2022 Advanced Learning Algorithms week2 C4
2023-08-28
吴恩达机器学习2022 Advanced Learning Algorithms week2 C3
2023-08-28
吴恩达机器学习2022 Advanced Learning Algorithms week2 C2
2023-08-26
吴恩达机器学习2022 Advanced Learning Algorithms week2 C1
2023-08-22
吴恩达机器学习2022 supervised machine learning week1 C3
2023-08-21
吴恩达机器学习2022 supervised machine learning week1 C2 作业
2023-08-17
北理-Python数据分析与展示-Numpy、Matplotlib、Pandas作业 1+1
2023-08-14
吴恩达机器学习2022 supervised machine learning week1 C1 作业
2023-08-14
PAT 乙级1031 查验身份证 测试点2无法通过 没有X大小写的问题
2024-03-30
TA创建的收藏夹 TA关注的收藏夹
TA关注的人