计算机系统应用教程网站

网站首页 > 技术文章 正文

千字长文总结自动驾驶算法工程师面试题(一)

btikc 2024-09-14 00:47:27 技术文章 21 ℃ 0 评论

用几篇头条文章总结下自动驾驶算法工程师在校招社招的一些经典面经。


本人人到中年,现为上海浦东某车企辅助驾驶感知算法高级工程师,闲暇之余打算做一点自媒体分享生活与技术,欢迎交流。

C++和操作系统

  • 线程会有自己独立的栈区堆区吗?
  • 虚拟内存有什么好处?
  • 两个进程 malloc 可能会返回一个值吗?会映射到一个物理地址吗?
  • 影响 C++ class 类的大小的因素有哪些?
  • 内存对齐会有影响吗?
  • 虚函数是怎么实现的?(虚函数表底层)
  • 析构函数为什么有时候要是虚函数?一个类空指针可以调用虚函数吗?可以调用普通函数吗?
  • 智能指针吗?
  • 死锁产生的条件是什么?Cpp 中如何避免死锁?
  • 动态库和静态库有什么区别?
  • map 和 unordered_map 有啥区别?
  • 哈希表怎么处理碰撞问题?最差能退化到什么复杂度?
  • 手撕多线程LRU
  • 列举常见stl容器
  • 为什么map用红黑树实现
  • C++中引用和指针的区别
  • C++ 11 share_ptr 底层实现?
  • 进程和线程?
  • 进程的状态?
  • 僵尸进程如何解决?实际中有发现过吗?
  • 进程调度算法?
  • 面向对象的三大特性?
  • 空类的大小?加了个 int 呢?
  • static
  • inline
  • 多态实现的原理?
  • 写一个大工程,什么情况下容易遇到Segment Fault?数组越界一定会导致Segment Fault吗?
  • Cache内数据存储格式,和内存之间怎么进行交互?
  • C++ oneway关键字的作用
  • OSI七层模型
  • C++的malloc的底层实现方式(按byte进行拷贝)
  • New和malloc的不同,New和malloc对应的删除函数分别是?能否混用,比如new一个用free删除?
  • 既然new比较灵活,malloc存在的意义是什么?
  • 野指针的安全问题?
  • Strcpy的安全问题?
  • 纯C可以实现多态吗?怎么实现?
  • 虚函数的原理与功能,底层实现逻辑?
  • C语言的函数是如何调用栈的?参数存储和返回值的栈使用?
  • C和C++内存对齐规则?struct?为什么要对齐?

Python

  • Python中哪些数据结构用了哈希表?它们的查找时间复杂度为多少?
  • 深拷贝和浅拷贝
  • Python中"is"和"=="的区别
  • Python的以___开头的系统函数有哪些
  • Python的装饰器
  • GIL的加锁和释放锁的过程吗?如何实现的?
  • 要用Python调用系统命令,用什么模块
  • multiprocessing如何实现进程间通信的?
  • Python的generator是如何实现的?
  • Python是单继承还是多继承?如果子类要调用一个父类的方法,应该怎么做?
  • 你知道super关键字的实现方式吗?

深度学习

  • CNN与Transformer的Attenion机制区别
  • Transformer Attention机制query和key之间通过点击计算Attention权重的Motivation
  • sych bn解决的问题以及怎么解决的
  • 小batch size的坏处
  • bn的均值和方差,在测试和训练时是怎么获得的
  • bn和gn的区别
  • cascade rcnn解决了什么问题,前向过程是怎样的
  • roi pooling 和roi align的区别,双线性插值的权重设置
  • soft nms和nms的区别,解决了什么问题
  • soft nms的具体过程,还有哪些改进方法
  • fpn的前向预测过程,为什么fpn对于多尺度的目标能比较好的适应
  • iou loss家族
  • PointNet家族
  • numpy手撕BP算法
  • 如何解决正负样本数量不均衡
  • 模型推理时conv和bn算子如何融合
  • 多标签训练的loss如何计算
  • 手撕avgpool算法,二维前缀和+dp写成O(m x n)复杂度
  • 密集行人场景存在遮挡有什么好的解决方案?这种遮挡情况下对跟踪的影响?
  • 为什么分类会采用交叉熵,有什么好处
  • 多任务跷跷板效应了解么,怎么解决
  • pytorch中dropout的底层实现是怎样的
  • 二分类任务,有哪些衡量指标
  • AUC的物理意义是什么
  • CenterNet的基本原理,跟其他的Anchor Free方法相比有什么优点
  • anchor free模型如何设计正样本
  • EM Planner和Lattice Planner的主要思想介绍?
  • Frenet坐标系和Cartesian坐标系的区别、联系及用在自动驾驶规划时的优缺点?
  • vectorNet介绍
  • 梯度下降法和牛顿法的区别?共轭梯度下降法和拟牛顿法介绍?共轭方向的选取?鞍点?对偶问题?
  • 如果softmax的e次方超过float的值了怎么办
  • 常用的优化器有哪写,ADAM和SGD有什么区别
  • Resnet的BottBlock和Basic Block有什么区别,为什么这么叫
  • L1范数和L2范数有什么区别,为什么L1解空间是稀疏的,L2解空间是稠密的?
  • Transformer轻量化设计有哪些?
  • 给定输入输出特征图,计算卷积参数量,给出FLOPs
  • 两帧之间的位姿如何估计
  • MobileNet家族
  • 深度可分离卷积,分组卷积,FLOPs和参数量
  • Anchor-free和Anchor-based在轨迹预测方面的应用?
  • 历史轨迹信息如何区分是运动状态改变还是上游误差?
  • mmcv中的hook runner机制
  • mAP计算
  • DCN & deformable DETR
  • 矩阵C = A*B,已知Grad(C),计算A和B的梯度

设计模式

  • cpp手写生产者消费者模型
  • 一部电梯设计测试用例

计算机网络

  • TCP 如何保证可靠
  • 三次握手四次挥手
  • get、post区别
  • 输入url到页面显示,描述整个实现过程
  • 保留的IP字段是哪些,192.xxx它们是哪一类地址
  • http状态码502 503 504分别是因为什么原因?
  • TCP 如何保证可靠传输?
  • 拥塞控制和流量控制?
  • cookie 和 session?

常用软件和Linux

  • tmux原理
  • sql查询每个部门薪资最高的员工名字
  • cpu核数如何查看(/proc/cpuinfo
  • cpu负载怎么看(uptime),参数的意义
  • Linux 虚拟内存空间?
  • Docker的镜像是如何运行成容器的?
  • 怎么删除一个git的commit?不知道的话如何删除最近一个commit呢?
  • Ros的topic和节点关系,和service有啥区别?可以两个节点发一个topic吗?

算法

  • 在40亿中如何找一个数是不是存在?两种方法
  • n个人排队上电梯,每个人有p的概率上电梯,1-p的概率不上电梯,如果他不上排在他后面的人也没法上,问t时刻电梯上人数期望
  • 有一个随机数产生器,以不等概率生成0或1,如何让生成0和1的概率相等?
  • 对于A*的理解与应用有多少?Hybrid A*优化在哪里?A*算法的实施过程中,如果遇到新的静态障碍物,如何处理?
  • 一个二维平面的点,先平移再旋转,如何构建这两个变换的矩阵

本文暂时没有评论,来添加一个吧(●'◡'●)

欢迎 发表评论:

最近发表
标签列表