- 博客(141)
- 收藏
- 关注
原创 python每日一题练习
那么现在问题就是如何使得这一轮的输出 作为下一轮的输入呢 首先第一轮的输入是1 然后会进行n次 (无论如何第一轮的输入都是1)那么就直接设置为1 然后会进行n轮 下一次的输入就是上一轮的输出 所以参数有 输入 和 n 这两个 但是输入是作为哪个就是我要进行递归的那个参数的。很简单就是这样的 我会固定的是我第一次是1 然后我会进行n次 每一次得到的结果都会作为下一次的输入 整体代码是这样的。这个输入就是1312 而且是字符串 那么我输入的n本来也就是字符串 所以这个逻辑是可以的。因此压缩后字符串变为。
2025-08-01 14:55:07
646
原创 python每日一题练习---简单题目
这个我也不会 大家一起学习一下这个 0xAAAAAAAA = 10101010101010101010101010101010(32位) 可以看到这些1都是在奇数位上的 那么如果这个n和这个与起来是0的话 就证明这个就是1是在偶数位上的。但是这个不够 比如10和01也是 但是此时10并不是4的倍数 所以还要满足的是这个1要在偶数位置上 也就是100 10000这样的情况 那么这个代码咋写呢?首先这个忘记写范围了 然后就是不长脑子 是的 是4的幂次方那么一定是4的倍数 那么是4的倍数一定是4的幂次方吗?
2025-07-31 21:02:27
843
原创 python每日一题练习
刚刚写了一个组合 是固定的数目的 可以按照任意顺序 然后这个要求的是子集 不能包含重复元素 可以按照任意顺序返回解集 感觉跟刚刚那个组合是一样的 只不过是集合内元素的形式可以是空 可以是一个 可以是两个 我的思路就是再嵌套一个for循环 用来控制path的长度。我们在刚刚的那个组合的代码上进行修改 首先我们假设这个path的长度是固定的。然后因为path的长度是会变化的 直接就设置一个参数就行 引导Path的变化。这道题还是蛮简单的 我就这样写吧 不打算做优化了 感兴趣的可以去看看。
2025-07-31 13:07:55
429
原创 python每日一题练习
第一个是错误的 第二个是正确的 如果我使用第一个 start=0 那么I是 0 1 2..假如当前i=1 num[1]=1 但是递归写的是start+1 那么i要从1开始 选1 那么这个就不对了 所以就是这个递归一定是在i的基础上往下走 是i进行改变 因为要一直往下走 你要是从start开始走看刚刚那个例子就是不对的。#加的时候要从start开始 防止往回走 从start开始加一个数字 加到path中 然后继续加 直到加够了。#思想就是如果长度够了 那么就加上 如果不够 那么就需要继续加。
2025-07-31 10:52:31
355
原创 python每日一题练习
先不管题目要输出格式是如何的 这样写肯定是有问题的 很容易导致dummy1的空指针风险 其实一个指针就够了 如果这个指针指向的节点的值 和这个指针下一个节点的值是相同的 就断开就行。思路很简单 就是双指针 如果后面的这个指针指向的节点的值 等于前一个指针指向的节点的值 那么就后面的指针往后移动 然后断开 蛮简单。而且还要考虑空指针和只有一个节点的指针的情况 【我开始以为是要链表转数组 结果题目要求竟然是直接返回链表 】给定一个已排序的链表的头。#然后需要进行链表转数组。#然后需要进行链表转数组。
2025-07-30 10:05:58
637
原创 python每日一题练习
这个代码是有问题的 因为在设置为0之后 再进行下一轮的 就会导致因为之前的所在行有0元素而被职位0的元素 在下一次作为导线使其所在行所在列为0 所以这个行不通的 要使用标记才行 就是额外使用 两个两个数组 col和row参数 (跟m n一样都非常有代表性了)全部设置为False 然后在找到为0的元素 将其设置为0的时候设置为·True 就是只有在这个数是False的时候并且是0 那么它所在的行和列才会被设置为0。#找到首先这个元素不能是这行这列同时满足条件的 并且这个元素是等于0的。
2025-07-29 11:34:41
867
原创 python每日一题
然后其实还是有优化思路的 就比如在确定了是这一行之后 这一行是有序的 所以使用二分查找会更快 我就不继续写了 感觉这个题目蛮简单的 真的好简单啊 也可能是因为Python的缘故?def searchMatrix(self, matrix, target):#matrix是一个矩阵 target是要寻找的那个值。思路就是这样的 找一行的末尾是比这个数大的 如果达到这个要求 那么找这一行最开始的 要么就在这一行 要么就没有。那么我是不是如果这个数字比这一行的最后一个大 那么就会在下一行。
2025-07-28 20:28:45
290
原创 python每日一题练习
这个代码的思路就是双指针 遍历整个数组 如果是0 那么这个地方的值就要和left的位置的值进行互换 如果是2 那就需要和right处的元素进行互换 这样的话就会使得最后1就是在中间的 0 2各在两边。但是肯定不是这么简单 我们来开阔一下新思路 既然是只有三个元素 0 1 2 那么是不是可以统计0 1 2 的数目 然后就前几个是0 中间几个是1 后面几个是2。这个思路很不错 但是不是我想的 是我看评论区里面的大佬想的思路 我觉得很灵活很牛了 所以给它记录下来。给定一个包含红色、白色和蓝色、共。
2025-07-28 18:07:44
909
原创 python每日一题 练习
这个题不愧是简单题 但是我写的有些冗余 可以更简洁 就比如将数字数组的元素拿出然后作为字符进行拼接 使用一个''.join(map(str,digits))就可以''思路很简单 就是将数字转化为字符 把这些拼接在一起 然后转化为数字 再加一 再转化为字符 存储到数组的时候再按照数字进行存储。digits[i]=str(digits[i])#转化为字符类型。这些数字按从左到右,从最高位到最低位排列。写一个比较简单的题目 平复一下刚刚写一道题写不出来的无奈感。将大整数加 1,并返回结果的数字数组。
2025-07-28 16:18:59
311
原创 python每日一题练习
然后我发现了是sum加的那里应该加的是-mid OK 那么这个代码就是正确的 在pycharm中是可以执行的 那么循环部分不管是Mid 还是divisor都会导致超出内存 没事哒 我们来考虑最后一种方法 那么就是位运算 这个是好东西 位运算其实不就是除法嘛(当然这么说也不对)进行位运算的时候需要考虑到的就是这个负号的符号位的问题 所以我觉得还是应该是正数比较直白一些 转化为正数进行计算。好的 我们现在再理一下这个思路 首先商的范围我们就按照从1 到 被除数的绝对值这个范围来。
2025-07-28 14:36:57
887
原创 python每日一题练习
好的现在想一下 返回啥 我们在进行合并的时候 当左边等于右边的时候 那么就证明此时只有一个链表了 那么就无法进行合并 就返回这个链表 然后进入到上一层将这个链表和其他链表进行合并 那么如何返回这个链表本身呢 其实就是return lists[left]就是合并的范围就是对于这个数组来说就是0 到len(lists)-1 就是我要对这么多的数组进行合并 而且是所有的Lists 合并的时候两两合并。请你将所有链表合并到一个升序链表中,返回合并后的链表。久违的python练习来了~先列出来两个链表合并的方式。
2025-07-26 17:48:48
590
1
原创 FUNasr前期训练
N就是真实的文字数量 N′是预测器预测的数量 进行计算损失 然后进行反向传播优化参数 看文中的意思是计算权重,进行累积得到预测的文字数量 然后与真实数量进行损失计算 (推断就是预测器是自己先进行训练的 等到到达一定要求的时候才会放入整个模块中) 然后文中提到的强制对齐的目的猜测应该是输入到采样器的时候需要跟真实的文字数量强制对齐 (当然这个是训练的时候)(针对于这个动态阈值 比如可能有的发音比较模糊 有的比较清晰 那么就加一个缩放的系数 )但是是不是其实针对于视频会议直播之类的清晰程度基本会是固定的。
2025-07-03 15:29:47
663
原创 funasr调研
意思就是transformer在自动语音识别(ASR)领域占据主导地位,尽管其性能优异,但是由于是采用自回归(AR)解码器逐token 生成输出,导致计算效率低下。为了加速推理,研究者设计了非自回归(NAR)方法(如单步NAR),实现并行生成。然而,由于输出token间存在独立性假设,单步NAR的性能(尤其是大规模语料下)仍逊于AR模型。
2025-07-02 16:03:57
936
原创 论文精读-Enhancing Few-Shot Class-Incremental Learningvia Training-Free Bi-Level Modality Calibration
我们学习最后一部分 方法 这部分我已经可以预感到我会写的非常痛苦了 大家肯定也会看的很痛苦 但是起码这只是文字 还不是代码 所以已经好很多了 大家跟我一起 耐心看完。
2025-07-01 15:03:49
1082
原创 论文精读-Enhancing Few-Shot Class-Incremental Learningvia Training-Free Bi-Level Modality Calibration
好的接下来我们继续阅读实验和方法部分 先看实验。
2025-06-28 17:21:03
554
原创 论文精读-Enhancing Few-Shot Class-Incremental Learningvia Training-Free Bi-Level Modality Calibration
本文核心就是提出一种高效的免训练双层级模态校准策略。首先分别在视觉和文本模态内优化分类器估计。然后融合视觉和文本模态的知识(结合图像特征与LLM生成的类别描述) 通过集成协方差度量和最近邻度量的推理策略,进一步提升了预测精度我应该会先写简单的实验,再写困难的方法分析 我觉得对于模型架构的形成代码大家应该都知道了 如果不清楚可以看我之前写的博客 十分钟学会Pytroch系列文章 所以可能我后面写对于代码不会有那么多 我还没有去复现。
2025-06-28 00:01:36
817
原创 论文精读-Enhancing Few-Shot Class-Incremental Learningvia Training-Free Bi-Level Modality Calibration-摘要
翻译:少样本类增量学习(FSCIL)要求模型在样本极少的条件下适应新类别,其挑战性远高于传统类增量学习。翻译:现有方法严重依赖视觉模型,且需在基础阶段或增量阶段进行额外训练,而我们提出了一种免训练框架,利用CLIP等预训练视觉-语言模型。翻译:我们的方法核心是一种新颖的双层级模态校准(BiMC)策略。翻译:框架首先进行层内模态校准,融合大语言模型(LLM)生成的细粒度类别描述与基础阶段的视觉原型,以实现精准分类器估计。。
2025-06-26 22:04:41
927
原创 大语言模型生成文本描述调研(3)
关于控制信号的工作,一般都是根据实际的需求或者动机提出一个新的控制信号,然后标注/自动构造相关的数据,以及设计能衡量控制效果的新指标。在方法层面,主要考虑使用attention机制和prompt等方法,将输入的控制信号融入到经典的编码器-解码器结构中去,加强控制效果(接下来解释为什么主要考虑使用attention机制和Prompt,各有什么作用。attention 机制:动态聚焦控制信号。
2025-06-26 20:14:12
927
原创 别管别管别管别管
进行预测时,将风格相关的参数替换为目标风格的参数即可(例如下图中,想生成romantic风格,便将SF替换为SR)。根据文中的对比实验可见,对风格化 (Acc.) 带来最大提升的是Classifier loss,对视觉相关性 (Cider) 带来提升最大的是Back translation loss,与其设计思路一致。:将图像和文本投影到同一个隐空间里,再进一步投影到不同风格的文本空间中。将生成的风格化描述转换为无风格描述,尽可能与图像描述的GT接近,保证风格化文本与图片内容的相关性。
2025-06-26 19:58:58
635
原创 大语言模型生成文本描述调研(2)--关于图像描述文本生成
控制信号:Verb-specific Semantic Roles (VSR) 动词为中心的语义角色(VSR 是一种结构化控制信号,明确指定一个目标动词(事件)及其相关的语义角色(参与者、工具、场景等),要求生成的句子必须围绕该动词事件展开,并精确覆盖所有预设角色。隐式控制参数:温度(调节生成结果的随机性) top-k(限制候选词的数量,比如仅保留最高的50个词)/top-p采样(按概率累计分布动态截断(保留概率和达0.9的词) 重复惩罚:抑制重复词或短语(如降低已生成词的概率)
2025-06-26 17:31:31
1174
原创 大语言模型生成文本描述调研
visual_features = { "objects": [ {"name": "咖啡杯", "color": "红色", "position": "大理石台面中央"}, {"name": "咖啡机", "color": "银色", "position": "咖啡杯旁边"} ], "scene": "现代厨房,有阳光照射" }文本内容层面的控制:控制信号会影响生成文本的结构和内容。任务输入视觉模态(图片/视频) 和控制信号,输出一句描述视觉内容和控制信号一致的文本。
2025-06-25 22:05:01
540
原创 python每日一题
这个跟我们之前自己填充矩阵的那个题如出一辙 不同的是这次是给我们矩阵 让我们按照螺旋的方式进行遍历矩阵当中的元素 那么其实还是一样的 设置flag 当到右边的时候往下走 到下边的时候往左走 到左边的时候往上走 到上面的时候往右走。我觉得对于边界的变化应该没啥问题,对于这个逻辑应该也没问题,就是按照顺时针的这个方向改变逻辑来的嘛。return [] # 处理 [[]] 或 [] 输入#增加代码的健壮性。print(result) # 输出: [1, 2, 3, 6, 9, 8, 7, 4, 5]
2025-06-25 21:46:33
822
原创 python知识点概述
5.数字类型的转换 int(x):直接截尾 float(x)转化为浮点数 complex(re[,im])生成一个复数,实部为re,虚部为im re可以是整数、浮点数、字符串 im可以是整数或者浮点数 但是不可以是字符串。我们来试一个字符串使用实例:输入一个月份数字,返回对应月份名称缩写 这个问题的IPO模式是:输入:输入一个表示月份的数字(1-12) 处理:利用字符串基本操作实现该功能 输出:输入数字对应月份名称的缩写。看舍入位的前一位(保留的末位) 如果是偶数 舍去5 如果是奇数 进位。
2025-06-25 14:52:05
669
原创 矩阵学习--题目练习 稀疏矩阵的乘法
mt1_arr = np.array([ [1, 0, 2], [0, 0, 3], [0, 5, 0] ]) # 检查第i行是否不等于0 i = 0 print(mt1_arr[i]!咱先来试试矩阵的乘法 先不管稀疏矩阵的乘法 大家应该知道numpy 如果不知道可以先学习一下 它使得矩阵运算的速度变得非常快 不再是依赖于手动for循环 而是。代码如上 我们在此基础上进行修改 使得是m*n 和n*s的矩阵 最后得到的矩阵是m*s的。#使得是m*n 和n*s的矩阵 最后得到的矩阵是m*s的。
2025-06-24 22:28:56
473
原创 矩阵学习--题目练习
就是你触碰到右边界的时候 意味着你再也不可能到这一层了 所以top+=1 当你触碰到下边界的时候 意味着右边这个你再来不可能触碰到了 所以是right-=1 当你触碰到左边界的时候 意味着下面这层你再也不会触碰到 那么就是botton-=1 当你触碰到上边界的时候 意味着最左边你再也不会碰到 所以left+=1。如果n是奇数的话,直到rows=col==n//2 如果n是偶数的话,col==n//2 row=col+1 于此同时边界的大小是要发生改变的。
2025-06-24 17:11:14
510
原创 矩阵学习--题目改进优化
那么设置一个result数组用来存储矩阵中的元素 开始的rows和col设置为0 看有几种碰到边界的情况 如果碰到的是右边界col=n-1 也就是col变成n-1了 那么就调转方向而且向下移动 如果碰到的是上边界 rows=0 那么就向右边移动 并且调转方向 不然的话就是往右上方移动 就是rows-1 col+1。
2025-06-24 15:56:37
762
原创 矩阵学习--题目练习
对于第一条对角线 我们按照i j的规律 设置为0 1就是(0,0) 这个看不出来啥 我们看第三条 从(2,0)-(1,1)-(0,2) row在减少 cols在增加 而且此时的是第三条对角线(代号是2) 那么cols+row就是2 但是我们看到后面的时候 比如第四条对角线上的元素,是(2,1)和(1,2) 第五条对角线上的元素是(2,2) 那么就不能使用cols+row=5了 所以这个之和应该是取一个值 这个值是由对角线是第几条与另外一个数目决定。# 行在减少到0为止 列在增加到n为止。
2025-06-24 12:52:51
652
原创 数据结构-矩阵学习
数学表示: 的矩形数组,元素通过行号 和列号 定位(如 )。内存存储:矩阵创建:matrix = [ [1, 2, 3], [4, 5, 6], # 2行3列的矩阵]rows, cols = 3, 4matrix = [[0] * cols for _ in range(rows)]动态初始化 创建一个全0的三行四列的矩阵分析一下[[0] * cols for _ in range(rows)] [0]*cols的意思是三个0 for _ in range(ro
2025-06-23 23:49:46
539
原创 python每日一题--算法训练
我一开始立刻就能想到的办法就是新建一个数组 然后在while里面建一个动态数组 从第一个字符串开始 如果后面的字符串排序之后 跟第一个相同 那么就加上去 直到遍历完全 从原数组将这些加到动态数组包括第一个字符串都删掉 然后进行下一轮 思路很简单 但是这样是太暴力了 超出时间限制 不知道跑多少轮了。改变的思路很简单 就是利用哈希表 如果你没出现 那就单开 如果你已经出现了 那么就有点像那个哈希表的链接法 当然在python 字典这边就是key和value值。的检查是高效的(平均O(1)时间)。
2025-06-23 17:50:46
443
原创 python每日一题 题目练习(方法1)
对于3*3的来说 只需要进行两轮(两个元素起头) 对于 4*4的来说 只需要进行4轮(4个元素起头) 那么就是2个元素和四个元素 那么行的话就是 n//2 列的话就是(n+1)//2。第一行第一个 第一行的第二个 第二行的第一个 第二行的第二个 所以就是 n//2 (n+1)//2(肯定不能想着是第一行的第三个啊 肯定从最开始的行和最开始的列开始找初始的元素)你只要确定这四个位置是咋变的 那么其他也需要进行相同变换的元素 遵循的是一样的规律。对于四的来说 是第一行的第一个元素和第二个元素。
2025-06-23 16:15:44
843
原创 回溯算法(7)---继续练习
为什么是前一个元素没有被使用过是满足条件的呢?这样想 前一个元素如果被使用 那我就是配角 所以我可以被使用 但是前一个元素如果没有被使用 那么可能就是我要跟前一个元素之前当过的主角进行角色互换了 那么这个是不被允许的(这一段是我胡言乱语 大家可以自行忽略)这个重复的数字影响到什么了呢?如果这个是已经被使用过的 那么就需要continue 如果这个元素跟前面的那个元素是相同的 并且前一个相同的元素没有被使用过 那么是满足条件的 需要被跳过。# 剪枝条件这个元素是没有用过的 如果这个元素用过那就不可以再用。
2025-06-23 11:51:39
1013
原创 回溯算法(6)继续练习
我们先接着做这个题:练习给定一个不含重复数字的数组 ,返回其 所有可能的全排列 。你可以 按任意顺序 返回答案。这个意思就是对于顺序不同的也会是不同的答案我直接写代码 这和我第一个关于回溯的博客是重合的 因为元素是不可以被重复使用的 所以会设置一个used数组 如果这个元素已经被使用过 那就被剪枝 不然的话就可以进栈 然后递归 直到return之后回来 然后再尝试其他的情况class Solution(object): def permute(self, nums): r
2025-06-23 11:03:43
684
原创 回溯算法(5)--继续练习题目
所以我们就可以想到 先对candidates进行排序 如果两个相邻的元素相等 那么便跳过这个元素 就比如 1 1 挨着 我用这个1当了主角 会生成 1 1 6 和 1 7 那么下一个就不能再去当主角 除了当 1 1 6中的配角之外 没有其他作用 相信这个应该大家可以理解。我多了[2, 1, 5], [7, 1]这两个 因为题目条件限制了每个数字在每个组合中只可以重复一次 但是也限制了解集不能包含重复的组合 但是对于重复出现的1 1 就算限制不回头选和不重复当前元素 都会有重复的。
2025-06-22 10:36:34
694
原创 回溯算法(4) 继续练习题目
这个是我第一遍写的代码 我的思路很简单 就是在path之和等于target的时候return 要想继续进行下去 path之和必须小于target才行 如果小于 那么就在这个candidates中选择 因为可以重复选择 将i加上去 然后递归 如果等于那么就return 之后将这个加上去的元素pop 尝试其他新的元素 如果不小于 那这个枝条就被剪掉了 如果小于 就继续执行 (建议是将最简单的全排列看懂 其他的就按照这个模式来写 不然会觉得心里乱糟糟的)如果至少一个数字的被选数量不同,则两种组合是不同的。
2025-06-22 09:50:18
702
原创 回溯算法(3)--其实不是回溯 填充才会涉及到回溯
这个代码不算难 主要就是对于那九个小格子知道是如何计算序号的 然后就是一个一个查找格子内的元素而已 因为集合的天然去重性 所以在创建开始的存储时 使用集合是个很不错的选择。我用的是列表 但是使用集合是会更快的 就像是查找这个元素在不在集合里面的话 速度是o(1) 集合的天然语义与数独的不允许一行出现两个相同元素 相符合 代码可读性更强。if "5" in rows[0]: # 需要比较 "5"=="3"?1.行内无重复 当前数字不能在同一行已出现过 使用一个数组row[i]记录第i行已经出现的数字。
2025-06-21 16:58:21
650
原创 回溯算法学习 (2)
对于这个题目来说 不存在括号类型必须匹配的问题 而且已经确保n=3了 那就不需要考虑数量不相等的问题了 所以我们的剪枝条件就是 path中的左括号数量小于右括号数量了。那么可以有的思路就是如果左边的括号小于三 那么左边可以继续加上 然后继续进行下一步 对于右边的括号只要小于等于左边的括号 那么就可以进行下一步。对于条件1 控制左括号的数量,只要左括号还能添加,就继续向下探索,只有保证了左括号,才可以保证右括号。对于条件2 保证右括号的数量 只有右括号的数量小于左括号的数量才可以继续添加。
2025-06-21 14:05:46
574
原创 回溯算法学习
描述一下 1 2 4 的过程 第一层执行到i=0 第二层执行到i=1 第三层执行到i=2 回退到第二层 继续执行i=2 选择4 这又是一个新的分支 只有2没加进去 现在是 1 4 2 pop 变成1 第二层执行完了 跑到第一层 从i=1开始 2开头 这又是一个新的分支 重复这个过程 再回退到第一层从i=2开头。所以最后的排列有 1 2 4 、1 4 2 、2 1 4、 2 4 1、 4 1 2 、4 2 1 (大家可以看这个过程想想代码咋写的。选择 1 剩下 2 4 选择 2 剩下 4 排列是1 2 4。
2025-06-21 11:42:34
594
原创 YOLO--预测阶段后处理-NMS非极大值抑制 训练阶段(2)
虽然之前已经说过了非极大值抑制是如何发挥作用的 但是我觉得还是结合代码看比较好 这篇就是结合代码我们来分析一下 非极大值抑制到底是啥?
2025-06-12 20:43:07
517
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人