来源:投稿 作者:LSC

编辑:学姐

话不多说,直接上题

1.链表反转

ListNode* reverseList(ListNode* head) 
{
 ListNode *prev = nullptr;
 ListNode *curr = head;
 while (curr)
 {
  ListNode *next = curr->next;
  curr->next = prev;
  prev = curr;
  curr = next;
 }
 return prev;
}

2.小偷偷东西,但是不能在相邻的两个房子里偷东西,问偷到的物品价值的最大值

经典的动态规划问题

状态转移方程式:

dp[0] = v[0] // v是物品价值的数组,dp[i]代表偷到第i家的时候的最大值

dp[1] = v[1]

dp[i] = max(dp[i - 1], dp[i - 2] + v[i]) // 要么不偷当前这家,要么偷了加上之前不相邻的一家偷的总和,取最大值

3.mAP

(1)先计算出每个类别的AP,总共m个类,

(2)AP的计算: 同一类目标检测结果框对应的precisionrecall

其中all detctions代表所有预测框的数量, all ground truths代表所有GT的数量。

(3)如下图所示:

  • 根据IoU划分TP&FP
  • 按置信度的从大到小,计算P值和R值
  • 绘制P-R曲线,进行AP计算
  • 多个与GT重叠的候选框均符合条件时,选取IoU最高的为TP,其余均为FP。

(4)最后画出以recall为横坐标,precision为纵坐标的图,

(5)补齐,计算近似的面积

A1+A2+A3+A4就是大致的面积AP

注意一点,一般precision和recall计算前100个点就足够了,再多会被抛弃,而且意义不大

(6)把每个类的AP求和,除以m,就是mAP

4.四种BatchNorm

对于[batch, c, w, h]的特征图

  • (1)是在batch这个维度上的批标准化,就是我们最常用的bn
  • (2)是在C这个维度上的批标准化,也叫Layer Norm
  • (3)是在[w, h]这个维度上的批标准化,也叫Instance Norm
  • (4)是在c这个维度上分组的批标准化,也叫GroupNorm

四种BN如下图,从左到右:

5.介绍nms

非极大值抑制

  • (1)设定目标框的置信度阈值,常用的阈值是0.5左右
  • (2)根据置信度降序排列候选框列表
  • (3)选取置信度最高的框A添到输出列表,将其从候选框列表中删除
  • (4)候选框列表中的所有框依次与A计算IoU,删除大于阈值的候选框
  • (5)重复上述过程,直到候选框列表为空,返回输出列表

6.介绍FCOS目标检测网络

这是一个anchor free的目标检测网络,应该说是一个anchor point的网络,它是基于feature map上的点来检测目标的,其中是采用特定的规则去对应的目标框的,Neck部分同样使用了FPN,使用了focal loss损失函数,能有效处理数据不均衡的情况。

关注下方《学姐带你玩AI》🚀🚀🚀

回复“简历”获取算法工程师万能简历公式

每周都会更新大牛面经,关注一下不迷路

码字不易,欢迎大家点赞评论收藏!

Logo

电商企业物流数字化转型必备!快递鸟 API 接口,72 小时快速完成物流系统集成。全流程实战1V1指导,营造开放的API技术生态圈。

更多推荐