今天的目标就是再偷一个模块,用公司的额度把那个原型图做一做,然后把后端的混淆矩阵做一个优化(添加进主页面+去零),再加一个后端的切图接口,然后就去做自己的事了

我在公司的mac上下了一个uu远程,用来控制我在宿舍的笔记本~(早该下的)

虚假的TODO:

  • 按照要求再把原型图做一做
  • webai-lite把混淆矩阵页面优化一下(添加进主页面+去零)
  • webai-lite后端添加一个切图接口
  • webai-lite添加局部屏蔽和全局屏蔽标注
  • webai-lite添加推理结果查看界面(标注结果/推理结果)

真正的TODO:

  • 再偷一个模块
  • 刷算法,八股
1
2
3
4
5
6
7
8
9
10
11
12
13
14
[v] 加入自动标注(一个很小的模型用来自动标注)

加入无监督模式(无监督又是什么?)

[v] 新建项目 + 仿真选项
[v] 导入模型流 推理
[v] 导入大模型 只支持测试(推理)

定位模型(什么是定位模型?有什么作用?)

[v] 混淆矩阵 去零(这个默认不去零,点击去零)

[v] 推理结果页面 + 反馈(这个反馈是怎么回事?只加一个按钮还是如何)

今天除了在做公司的事情之外,一直在看余华的《活着》,从有庆上学读到了有庆被抽干了血死了,富贵把它埋在了田里和他爷爷奶奶埋在一起,家珍得了软骨病,凤霞嫁给了偏头,后来凤霞生苦根大出血死了,也被二喜和富贵葬在了同一块地方,后来二喜也在搬东西的时候被板子砸死了,死前还大喊了一声苦根,之后就是富贵和苦根在乡下过日子了,几年之后苦根因为生病了富贵给他煮了很多豆子,苦根吃撑死了,之后我凑够了买牛的钱,买下来快要被宰的老牛

看一本书就能把一个人几十年的人生快速的过一遍(虽然是虚构的,但也是那个年代很多人的缩影了),我最敬佩的是每次富贵遇到亲近的人死了,他都能从悲伤的状态中调整过来,重新乐观面对生活,就算到了最后只剩他和老牛,还是怡然自乐。这肯定是我要学习的

在我没看这本书的时候,看过这本书的人都说太苦了。现在我快看完了,苦是真的苦,但是也会有一些庆幸的小事:富贵被国名党抓去壮丁打仗,最后却没死,活着回来了;有庆在学校运动会亮眼的表现;

仿佛人生本来就充满着大的苦难,或者说苦难让人印象深刻,而那些生活中的小小的幸福却不是很容易注意得到。会记得自己考高查分的那个下午的沮丧,但却从三年的大学生活挑不出什么美好的事,与其说是挑不出,不如说是幸福的时候根本来不及注意,也没有记下

乘积最大子数组 dp

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
class Solution {
public:
int maxProduct(vector<int>& nums) {
int n = nums.size();
// 题目没有让我们求子数组的范围,只需返回最大乘积即可
if (n == 0)
return 0;
else if (n == 1)
return nums[0];
// 负数乘以负数,会变成正数,所以我们需要维护两个变量
int Max, Min, ans; // 分别为当前的最大值和最小值
Max = Min = ans = nums[0];
for (int i = 1; i < n; ++i) {
int tmp = Max;
// 最小值可能为负数,但没准下一步乘以一个负数,当前的最大值就变成最小值,而最小值则变成最大值
// 如果nums[i] == 0需要断开从i + 1位置重新开始
Max = max(max(Max * nums[i], nums[i]), Min * nums[i]);
Min = min(min(Min * nums[i], nums[i]), tmp * nums[i]);
ans = max(ans, Max);
}
return ans;
}
};
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
def maxProduct(self, nums: List[int]) -> int:
max_p = nums[0] # 全局最大值初始化为数组第一个数
first_neg = 0 # 标记当前分段第一个负前缀积,0=无负数
pre_p = 1 # 分段前缀积,每段从1开始相乘
for num in nums:
pre_p = pre_p * num # 更新当前前缀积
max_p = max(max_p, pre_p) # 情况1:整个前缀子数组乘积更大,更新答案

# 当前前缀积为负数
if pre_p < 0 and first_neg == 0:
# 分段里第一次出现负前缀,记录这个值
first_neg = pre_p
elif pre_p < 0:
# 已经存在第一个负前缀,去掉第一个负数前的区间,乘积转正
# pre_p / first_neg = [第一个负数后 ~ 当前] 的子数组乘积
max_p = max(max_p, int(pre_p / first_neg))

# 遇到0,分段截断,重置前缀积、负标记,开启新分段
if num == 0:
pre_p = 1
first_neg = 0
return max_p

今日工作内容

  1. 原型图和webai-lite添加混淆矩阵去零操作
  2. 原型图新增仿真流程(导入数据-》导入模型-》开始推理-》查看结果)
  3. webai-lite新增导入图片时的切分逻辑

下阶段计划

  1. webai-lite添加局部屏蔽和全局屏蔽区画笔
  2. webai-lite添加推理结果查看界面(标注结果/推理结果)