豆丁的每日复盘

目录

2023.11.12

2023.11.13

2023.11.14

2023.11.15

2023.11.16

2023.11.17

2023.11.18

2023.11.19

2023.11.20

2023.11.21

2023.11.22

2023.11.12

(1)了解就业形式
图像cv算法岗貌似门槛很高,感知融合和slam岗不太清楚,还需要继续了解,看了一篇求职历程,存知乎收藏夹了,核心就是感知方向:C++和python必须会,最好一主一辅,leetcode刷题就用C++,接下来一段时间深度学习都会用python,这样两个语言不会厚此薄彼;深度学习必须熟悉,卷积运算也需要学习,不能只会传统方法;算法和数据结构也需要学习,这个就边刷题边熟悉。目前这几个是通用的,可以无脑学;

(2)写了第一篇leetcode题解

主要是对双指针的理解:快指针筛选,慢指针重构;这个思路用于数组重构很好使

(3)保持一天两题的刷题强度

一题双指针(middle)

一题哈希表(easy),采用哈希表进行数组元素计数,以筛选最多元素(可以使用投票法,O(1)的额外空间,很好使)

2023.11.13

(1)学习了Tensor这一概念,这其实是一种包含了局部梯度的数据类型,在使用Tensor进行运算式构建forward()时会生成计算图,由此可以通过反向传播backward()将每个参数的梯度计算出来。

(2)使用pytorch构建了线性回归模型的框架,采用torch.nn.Linear()这个类进行正向传播模型构建,并通过输入输出特征维度确定参数维度 。采用torch.nn.MSELoss()这个类进行目标函数构建,使用 torch.optim.SGD()这个类进行优化器构建,这个优化器采用的是最简单的随机梯度下降进行参数更新。

(3)刷了两题leetcode,一题数组轮转,加了O(n)空间复杂度 ,一题动规买彩票(只考虑当前时刻以及之前最优)

2023.11.14

(1)学习了如何使用logistic regression进行二分类模型搭建,其本质其实是在线性回归模型上加了一个sigmoid函数使其非线性化后将其结果归到0到1之间。

(2)神经网络的本质其实就是通过寻找一系列线性模型的最优模型进而构建一个最优的非线性模型

(3)两道leetcode,一道股票购买mid(贪心算法解决),一道台阶跳跃mid(贪心算法解决)更正昨天的错误概念,动规实际上是通过状态转移方程在一个动态区域内建立联系并进行求解,而贪心算法则是只考虑当前的最优选择(容易陷入局部最优解)

2023.11.15

(1)注重应用层的学习(比如yolo?)

(2)熟悉整体架构:MMdetection

(3)可以进行部署方面的尝试

(4)算法学习:https://www.hello-algo.com/

2023.11.16

(1)今天看了hello算法中的动规讲解:动规的两大特点:最优子问题(子问题之间有重叠性)+无后效性(对于一个给定状态来说,系统的未来状态只和当前状态的决策有关,而和当前状态之前的状态无关)

(2)个人感觉动规的更简单做法是采用回溯或者记忆化搜索(回溯的剪枝版),今天还是有两个动规题没有想明白,明天再想一下

(3)深度学习还是得学 ,用处很广 

2023.11.17

(1)今天把一维dp的题目刷完了,对动态规划做一个小的总结:动规的思想主要体现在自下而上的解决问题,把原有的大问题看作是一系列重复的小问题的有限次叠加。当然回溯和分治两种算法思想也是有分解子问题的思想,但动规不同的地方在于:它的最小子问题需要具备最优子结构和无后效性。

2023.11.18

(1)今日无事,就刷了三道dp题,字符串的题(今天是回文字符串)还是很难,需要多刷几遍

2023.11.19

(1) 学了CNN模型的构建并采用MNIST数据集进行训练,个人见解:CNN模型的卷积核这一特性貌似只是用于图像的特征提取,同时在模型的通道数高时进行大卷积进行卷积运算会导致运算量大幅增加,可以考虑先采用小卷积核进行卷积运算并缩减通道数量,再采用大卷积核。

(2)相比较CNN,RNN模型结构比较简单(本质上是输入和隐藏层之间的线性组合加激活函数),并根据输入序列传递隐藏层(这一特性保留前面部分的输入对模型的影响),反复对模型的参数进行优化。

(3)刷了三道动规题,一个题都没做出来。。。

第一道题:交错字符串(字符串一生之敌艹)

第二道题:word1到word2所需的最小操作数(这题属实牛逼,优雅且看不懂)

第三道题:leetcode教你买股票系列四(有迹可循,dp牛逼)

2023.11.20

(1)今天打算熟悉一下深度学习算法库(深度学习框架)pytorch,熟练掌握?

(2)语义分割:将图像分割为多个组成部分

采用深度学习进行语义分割的常见架构组包括:全卷积神经网络(FCN),基于编码器-解码器的模型(erfnet),RNN,R-CNN(区域卷积神经网络)

(3)在kaggle上找到了一个TitanicNet(采用LogisticsRegression)的pytorch框架实现,在这个基础上学习了一下python的数据清洗,这里有个发现:pytorch的出现一定程度上替代了numpy这个库的矩阵运算功能(numpy只能在cpu上进行计算,而pytorch可以将tensor部署在GPU上,这个纯属个人理解),

(4)至于pandas和numpy的数据组织形式的区别:我觉得pandas趋向于处理非标准化的表格数据(数据类型不统一),而numpy的数据组织形式其实简单理解就是数组(多维数组),其只能处理单一类型的数据。

(5)numpy:可以将其理解为多维数组的容器,用于处理单一数据类型

        pandas:基于numpy的数组产生,用于处理表格和混杂数据

(6)今天做了最大全1正方形的dp题,自己做滴

2023.11.21

(1)终于使用pytorch框架搭出了titanic disaster的生还预测模型,logistics regression Net没啥新意,就三个全连接层,重点在于如何在拿到一份数据后进行数据预处理:补全fillna,非结构化数据结构化(独热数组),数据标准化(转化为正态0-1分布StandardScale,消除较大数据特征对参数的影响)。还有就是DataFrame和array以及tensor之间的各种转化操作。

(2)自己从头实现了自定义dataset的方法重写,主要是初始化函数和getitem函数,第二个函数和我们在dataloader中取batch时有关,所以也需要进行重写,len函数个人觉得无所谓,至少目前来说无所谓。

(2)做了两道二分查找题,在二维矩阵中搜索这道题的下表边界条件有点刁钻,想了一会儿才想出来

2023.11.22

(1)跟着教程复现了了resnet的小层数版本,还没有进行迁移学习训练,明天尝试。学到几个操作:非关键字参数传递;torch.Sequential(里面可以装载系列神经网络层,相当于打包);resnet引入残差,有效防止了模型退化和梯度爆炸以及梯度消失问题。

(2)看了一下语义分割的基本概念,用于语义分割的神经网络最后会输出一个其底层逻辑类似独热数组,只不过从二维变为三维的独热空间矩阵(考虑batch),依此进行损失函数计算并反向传播计算梯度。

(3)初识迁移学习,本质上就是拿训练好的模型再来跑数据集,由于模型本身的参数已经较优,能在小样本或训练较少次数的情况下得到较好的模型效果。一般有三种方式:训练所有模型参数,训练最后几层参数(卷积神经网络浅层参数学习到的是比较泛化的信息,而深层参数学习到的是比较具体的信息,因此若现有模型和任务内容底层通用特征相似,可以采用这种方式),在模型最后再添加一层全连接层并只训练该层参数。

(4)今天leetcode也是两道二分查找题(mid),有点绕脑子,第一题找驼峰数,思路很清晰,结合边界条件很容易写,第二题旋转数组二分查找,有点绕脑子,需要明确m的具体位置然后才能确定target到底在m左边还是右边。

2023.11.23

(1)tqdm,python中进行大型模型训练时进度条显示的一个模块。形如:

train_bar = tqdm(train_loader, file=sys.stdout)
for step, data in enumerate(train_bar):
    images, labels = data
    optimizer.zero_grad()
    logits = net(images.to(device))
    loss = loss_function(logits, labels.to(device))
    loss.backward()
    optimizer.step()

    # print statistics
    running_loss += loss.item()

    train_bar.desc = "train epoch[{}/{}] loss:{:.3f}".format(epoch + 1,
                                                             epochs,
                                                             loss)

(2)学习了os.path中对路径的一些基本操作,如getcwd(),join(),exist()

(3)python中的断言assert工具:通过人意判断条件主动发现bug(但好像有时候不尽人意?)

(4)两道二分查找题:一道查找相同元素首尾位置题,代码略显臃肿,连续用了三次二分查找结构,一道旋转数组最小元素,这个题感觉很简单,mid垫底的那种。

2023.11.24

(1)进行了VGG神经网络的搭建,其主要思想就是通过多个较小的卷积核叠加来获取与大卷积核相同的感受野,进而达到减少参数数量的目的。其次感受了pytorch中xxtensor.to(device)的便利之处。

(2)学习了插排,这是一种基于分治思想(哨兵机制)的排序方法,理想情况下时间复杂度可以到达nlog(n),但有可能劣化至O(n^2),即退化为冒泡排序。

(3)一个二分查找中位数困难题(没做出来),一个分治平衡二叉图(看着答案做的)

2023.11.25

(1)今天跑了3km,没学习……

2023.11.26

(1)今天学习了MobileNet的三个版本,MobileNet这个网络的最大优势就是足够轻量,可以部署在cpu以及移动设备这些算力较低的设备上,其主要是通过DW卷积(卷积核channel固定为1,也就是每个卷积核对应一个输入和输出的channel,这样可以大大减少网络参数数量,但由于DW卷积无法改变输入输出channel,因此需要1*1卷积核的帮助(PW卷积),v2版本则是在简单的DW,PW卷积堆叠的基础上引入了倒残差结构,以此解决v1版本DW卷积核无效的问题。

(2)做了两道二叉树简单题,树的最大深度相同树。主要思想在于递归。

2023.11.27

(1)今天学习了注意力机制,这其实是一个权重分配问题,模仿人类注意力对匹配对象进行一个权重分配,即注意力机制。若一个对象的匹配对象是它本身(如翻译任务,每个中文词都有对应的几个英文单词,每个词进行翻译只需要对中文句子本身进行匹配并考虑先后顺序,即可完成任务),即它需要自己注意自己,此时就是自注意力机制。

(2)在此基础上了解了ViT以及mobile ViT,ViT的主要思路是将图像分为多份并嵌入位置编码使其类似一个序列,在此基础上采用Transformer和MLP(多层感知机)对图像进行分类任务。mobileViT的轻量操作主要是基于间隔匹配(图像的相邻像素差别很小,进行匹配收益不高)。mobileViT的运行时间还是不如mobileNet。

(3)三道二叉树的题:翻转二叉树对称二叉树从前序和中序序列构造二叉树(这个题需要对前序遍历和中序遍历有一个最基本的了解,前序遍历是【根节点,左子树,右子树】,中序遍历是【左子树,根节点,右子树】,后序遍历是【左子树,右子树,根节点】。

2023.11.28

今天去了链博会……

2023.11.29

(1)现代控制作业收尾。

(2)做了一个二叉树的题,中序遍历加后续遍历,实质上和前序遍历加中序遍历没有区别,明白这几种遍历方式得到的数组特点就能进行解题。

(3)房贷真可怕。

2023.11.30

(1)LeetCode每日一题,判断两个字符串是否为可转化的字符串,关键在于判断转化的特点,明确其核心在于每个字符的数量。

(2)一个二叉树题,连接相邻右侧节点,主要通过二叉树的层遍历对每一层进行一个向右连接。

2023.12.1

(1)新的一个月开始,里一个flag,LeetCode全勤了解一下?

(2)每天新增一篇博文,每日一题的解析,最好能同步学习一下深度学习,再加一篇博文,这样能进行推广。

2023.12.2

(1)今天的每日一题是拼车问题,官方的差分法很巧妙,是我愚笨了,但是我也用笨的方法把它做出来了哈哈哈。

(2)实践了一下快排这个算法,它的哨兵分割很有讲究,在升序排列时,哨兵(默认取第一个元素为哨兵元素)可以和小于等于它的元素进行换位,但是不能和大于它的元素换位,所以要先从右往左找第一个小于哨兵的元素位置j,再从左往右找第一个大于哨兵的元素位置i,注意i要时刻小于j,随后i,j位置元素互换。当i<j不满足后,将哨兵和i位置的元素(必然小于等于哨兵)进行换位。

同理,若是降序排列,则与哨兵进行换位的元素必须大于等于哨兵,也是先从右往左寻找第一个大于哨兵的元素位置,再从左往右寻找第一个大于哨兵的元素位置……

2023.12.3

(1)今天参加了第一次LeetCode周赛,结果惨不忍睹,本来能做出来两题的,最少添加硬币数这道题老是编译错误说我整形溢出了,后面又很玄学的好了,有点离谱,挂在这里接受我的唾弃吧。有点菜,下周还来。

(2)今天杂事很多,没有多余的时间学习深度学习了,再划一天。

(3)试用了一下drawio,确认过眼神,是好用的软件,画框图强推,个人感觉比visio好用多了,一鼓作气给两篇博文配了图。

2023.12.4

(1)今天是跑腿的一天……,主打一手学院路一日游,人麻了

(2)做了每日一题,是一个二叉搜索树的题目,运用类似后序遍历的方法,到树底部以后(优先遍历右子树),往后递归。

2023.12.5

(1)今天脑袋一抽重装电脑系统,蓝牙和指纹寄了

2023.12.6

(1)今天通过咨询华为和荣耀的客服,终于把驱动的问题解决了

(2)搞了一个自己喜欢的code背景(doge)

(3)今晚出发去淄博

2023.12.7

(1)先记一下重要的,场景代码调整难度不大,关键是如何想出二十个场景,并将其从CAN协议中搞出来。

(2)淄博烤鱼和烧烤都很好吃,感谢师兄嘿嘿

2023.12.8

(1)今天又开始了每日快乐刷题(doge),一道动规+二分排序(upper_bound/lower_bound +lambda函数了解一下)

2023.12.9

(1)双周赛半个小时两道题,我太狂喽,明天继续打周赛

(2)leetcode每日一题,是个打表题……,不过可以学习一下将一个整数按位拆分的做法!

2023.12.10

(1)今天没去实验室,在宿舍教老妹做题+补作业。

2023.12.11

(1)今天做完了周五的答辩ppt

2023.12.12

(1)今天把研究了一下每日一题:下一个更大的数,这是个困难题,但是使用单调栈的思路很容易进行解决(用小顶堆进行辅助,主要是借助其有序的优点)

(2)研究了一下车上的各个CAN类型(PCAN:动力CAN,DCAN:诊断CAN,BCAN:车身CAN,ADASCAN:自动驾驶辅助系统CAN),把需求表做了出来

(3)C++的编译链接模型:预处理(将源文件转换为翻译单元的过程,简单理解就是将包含的头文件进行展开,在这个过程中可以使用#ifdef或者#progma once防止头文件循环展开,推荐后一种,可以防止宏定义重名),编译(将翻译单元转换为汇编语言),链接(将多个源文件进行链接)

2023.12.13

(1)今天就逛了超市,没干啥事,惭愧

2023.12.14

(1)又做了一个leetcode困难题,主要了解了前缀和与差分的应用,贪心算法(能干就干的思想)

(2)完成新能源综述作业

(3)学了C++中无形参的用法,一般是当用户需求(要多输入形参)与实际功能(实际不需要那么多形参)不符时采取的一种做法,以避免误调用形参导致错误。

2023.12.15

(1)今天进行了智能网联汽车的结课答辩,奖励自己一杯茉莉茶

(2)今天每日一题是完美二叉树的层序遍历的变式应用。

(3)继续完成新能源汽车作业,方程式赛车电池设计,还好老师脾气好(doge)。

2023.12.16

(1)又遇到了STL中提供的lower_bound()和upper_bound()这两个函数,这两个函数采用的是二分查找的方法,用于有序数组中查找目标元素,lower_bound()查找的是升序数组中第一个大于等于(>=)目标值的数的迭代器,而upper_bound()查找的是升序数组中第一个大于(>)目标值的数的迭代器。若未找到,则返回.end()。若要用于降序数组,则需要使用自定义比较器greater<T>,此时lower_bound()查找的是降序数组中第一个小于等于(<=)目标值的数的迭代器,而upper_bound()查找的是降序数组中第一个小于(<)目标值的数的迭代器。

2023.12.17

(1)今天进行了第二次周赛,依旧是两题选手。继续加把劲

2023.12.18

(1)今天的每日一题以前做过,是用二分法查找峰值元素,今天学了用一个辅助的匿名函数进行边界条件剔除的方法

(2)路还是得一步一步走,不然徒增烦恼,累计一点项目经验吧

(3)平白无故领了个活,不过还算不是很难做。

2023.12.19

(1)今天的每日一题是在二维矩阵里面寻找峰值,这个还需要脑子稍微急转弯一下,因为要通过每一行的最大值与上下相邻值进行比较,通过这样来通过二分判断峰值所在行的位置。

(2)今天继续进行矩阵理论的复习:过渡矩阵,线性变换的矩阵表示,矩阵求逆(需要进行转置),特征值以及特征向量(线性变换和矩阵的不一样,差一个基)的求解,求解特征值时最好就直接全部展开。

2023.12.20

(1)今天继续复习矩阵理论,总算把矩阵的相似对角化、约旦矩阵、欧氏空间的理论部分看完了。

(2)感谢果宝给我买的小蛋糕,很好吃,就是没拍好照(doge)

(3)今天的每日一题是山形数组的可能最大值,其实也是求一个递增子序列前缀和的一个工作,需要借助单调栈进行维护。

2023.12.21

(1)今天做了前三节的习题,做完题之后感觉对知识点的掌握更牢固了,过程记录在笔记本上,回头可以再翻一遍。

(2)今天的每日一题又是单调栈,没做出来,不过看了题解勉强理解。

2023.12.22

(1)继续复习矩阵理论,证明题大概率出在第二章,习题最好还是系统过一遍。

(2)每日一题是山形数组困难题,考察最长递增子序列的写法(可以用DP,也可以二分)

2023.12.23

(1)leetcode双周赛,何时才能摆脱两题选手啊!!!

(2)艹

2023.12.24

(1)今天推导矩阵的正交分解/酉分解的解题过程证明时心态有点裂开

2023.12.25

(1)今天看矩阵挺顺利的,继续复习

(2)今天的每日一题是个鸡兔同笼题。。。

2023.12.26

(1)今天去了一趟工信部,国家级部委,里面大人物真多。

(2)看到一个关于动规很有意思的解释:1+1+1+1+1=5,那么在最后再+1会等于几呢?很容易知道是6,而且我们不需要要再计算一次1+1+1+1+1,因为它的值已经被我们“储存”起来了,这就是动规的最基本思想,储存以前的状态,后面的状态通过以前的状态推导而出(状态转移方程),而储存状态可以用一维二维矩阵,如果需要使用超过这个维度的矩阵来储存系统状态时,就要考虑使用维度缩减DP。

2023.12.27

2023.12.28

2023.12.29

2023.12.30

2023.12.31

(1)这五天基本不在工位,去自习室复习矩阵理论啦,目前已经全部过了一遍,开始练习往年题,往年题做完就可以去看看慕课题,复习差不多就这样了,复习付出的精力也已经挺多了,可以说尽力而为吧,这几天的每日一题都是cv工程师,大多数都是简单题,和日期相关的,这里记一个函数:stoi(“字符串”)。用于将内容为数字的字符串直接转化为数字。

(2)十二月全勤徽章get!!!

(3)这周leetcode周赛忘记打了(doge),但是好消息是上周周赛排名居然七百多,果然第三题是hard题对于我这种菜鸡很有帮助,借此上了一波大分。

2024.01.01

(1)新的一年开始,这必须狠狠地早起然后下午再补觉(doge)

2024.01.02

(1)今天把矩阵往年题基本全做了一遍,还是容易出错,题还需要继续练,加油加油

2024.01.03

今天回归工位,开始看路径规划的论文,有如下总结:

(1)transformer能否用于决策尚未明了,但transformer可以用于传感器数据融合(比如RGB图像和Lidar生成的BEV视图之间的融合)

(2)今天看到的端到端路径规划论文是基于编码-解码架构实现,其采用的神经网络是CNN,通过transformer编码后通过MLP和RNN进行路径点输出。

(3)DDPG是深度强化学习的一个改进版本,在进行数据融合的基础上仍可以进行路径规划,这是不是说明还是可以进行端到端?

2024.01.04

今天做了2021年的矩阵考题,计算太慢了,这样下去考试写不完,后面还得加练,把计算的速度提上来,同时也要保证准确度。

同时找到一个2021年的顶会论文,就是用transformer做数据融合,在此基础上进行了端到端的路径规划,这是开源的,后续工作有着落了。上海人工智能研究所的UniAD也是一个面向路径规划的端到端大模型,他把三大任务:感知,决策,规划都集成在了一起,具体包括目标识别,目标跟踪,栅格分割,路径规划等子任务,后续可以继续关注。

2024.01.05

2024.01.06

2024.01.07

持续复习矩阵理论中,这几天得甲/乙流了,很难受

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值