- 博客(37)
- 收藏
- 关注
原创 大模型项目失败的主要十大原因
还有一个感受就是做大模型开发需要了解业务,需要站在用户的角度思考,比如大模型的推理速度,当历史context很长,并且使用推理模型的时候,用户的使用体验其实是很差的,或者是当需要使用RAG系统,用户输入的pdf过长,大模型上下文受到限制的时候会考虑切分,但是对于需要生成表格的任务,整个信息是不完整的,如果使用大模型对中间过程进行总结,用户体验进一步变的糟糕。第二点就是大多数情况是不敢去微调的,目前企业会偏向保守,能简化流程就简化流程,也就是不过度设计,因为大多数项目会快速开发验证证明可行性。
2025-08-25 12:19:49
257
原创 [hot100]和为K的子数组-Python3
2>判断(前缀和-k) 是否在hash表中(如果存在,则说明存在这样一个子数组*,因为前缀和是由之前的序列累加出来的,前缀和减去K如果刚好在之前的前缀和中,则说明刚好存在这样一个连续子数组),如果在则将hash表中对应前缀和次数加到count。存在两个前缀和为10的时候,10-k=4,4存在在前缀和中,说明存在这样一个连续序列(子数组),如果有两个10,那么可能存在2个连续的,和为6的子数组。4.[1,1,1]的情况需要预设count_pre = {0:1}的前缀和,避免报错。
2025-08-08 14:55:07
185
原创 [hot100]找到字符串中所有字符的异位词-Python3
3)当right向右循环的时候,left端点将要同时离开上一个维护的滑动窗口,因此需要将s数组左端点的字母频率减去,以维护p长度的滑动窗口内的字母频率。2)通过维护的频率hash表来对比两表字母的出现次数来判断是否为异位词,如果两表相同,即字母和出现次数都一样,则为异位词。1)通过定长的滑动窗口,right为滑动窗口的右端点,left为滑动窗口的左端点。
2025-08-07 14:31:51
163
原创 【hot100】无重复字符的最长子串-Python3
j=1, i=-1;j=2, i=-1,最后res=3, 如果为"abcac",j=4的时候,i=2, res=2,然而,在这之前,最大的res为j=2时候,i=-1, res=3.因此最长子串为3。1)通过[i+1,j]之间来记录无重复的子串,因此当j指向重复的子串的时候如"abcabcbb",j=3的时候,需要保证[i+1,j]之间无重复子串,即[-1,3]之间无重复,则将i指针移动到上一次a出现的位置,即i = max(-1, 0),此时i指向0,j指向3,i+1到j之间为"bca"子串。
2025-08-06 14:29:29
216
原创 [hot 100]盛最多水的容器-Python3-双指针
2.指针从两端往中间运动,计算最大面积并且使用max_value记录,使用While循环遍历所有情况的时候如果左侧为短板,则左侧指针继续往中间运动,反之右侧指针往中间运动。1.盛水的多少和短板有关。
2025-07-24 00:09:19
111
原创 [hot 100] 移动零-Python3
2.如果右指针指到非零值,则交换后,左指针向右移到左序列尾的后一个位置,为下一次交换做准备。1.左指针始终指向左侧无零序列尾后一个位置,右边指针如果指到非零值则和左指针进行交换。3.如果右指针指向0,则右指针向右移动指向下一次可能交换的值。
2025-07-23 17:52:46
183
原创 [hot 100]两数之和-Python3-Hash Table
2)使用targets-num如果命中,则说明num + 命中位置的值 = target,则返回Hash表中命中位置值的序号和num序号。3)如果没有命中则将序号作为值,nums对应的值作为序号存储进入Hash表。使用Hash表来存储nums。1)遍历输入列表的序号和值。时间复杂度O(1)。
2025-07-23 00:01:37
204
原创 【VI Transformer】Self-attention中QKV的含义-学习记录
【VI Transformer】Self-attention中QKV的含义-学习记录
2024-03-19 19:25:06
731
原创 vscode 提示import cv2 ModuleNotFoundError: No module named ‘cv2‘解决方法
vscode 提示import cv2 ModuleNotFoundError: No module named ‘cv2‘解决方法
2024-03-14 15:14:12
3027
原创 [Python3]114.二叉树展开为链表-原地操作
将root指向下一个右侧结点后,就可以反复的处理每个子树的左侧结点,使得其按照根左右的顺序排列。(root的左边结点最后处理,因为要把root的右侧结点全部移到root的左侧结点的右子树的最后)核心就是反复的将root的右子树移到左子树的右侧最后一个结点的右侧空节点。(1)把root的右子树 移到 左子树的右子树的右边的空结点上。(2)将root的整个左子树移到右子树。(3)将root的左子树清空。
2024-03-11 21:35:16
417
原创 [Python3]437.路径总和III-双层递归
(1)既然要求不从根节点开始,也不需要在叶子结点结束,那么我们可以用一个双层的递归,内层的递归对每一个分枝进行自顶向下的完整遍历求和,外层递归则从顶部结点开始,一个一个的往下移动。这样做到了从任意结点开始的求和计算。(2)内层的递归每一次targetSum要减去当前结点的数值,如果判断当前值已经等于targetSum了,则存在一条路径。双层递归,自顶向下!
2024-03-10 17:10:18
392
原创 [Python3]112.路径总和-递归
(2)当到达叶子结点的时候,判断结点是否结点的左右都为空,若是叶子结点,则判断此叶子结点的值是否等于targetSum ➖ 之前所有结点的值。(3)最后若左子树存在一条路径或者右子树存在一条路径,都返回True。(1)根,左,右的访问形式。这在111题中也有所体现。
2024-03-05 21:23:42
459
原创 [Python3]110.平衡二叉树-递归(详细推导递归过程)
(5)判断root为空,返回0,此时我们得到了根节点的左节点的左右子树高度都为空,即root->left->left高度为0,root->left->right高度为0。(6)判断abs()不大于1,因此左右子树高度加根节点为根节点的左子树的高度,即0 + 0 + 1 = 1,我们就得到递归后的结果,即根节点的左子树的高度为1.(3)判断root为空,将0返回给judge。接下来同理我们可以知道,根节点的右子树高度也为1,最后判断根节点的左右子树高度都为1。整个递归是一个从底而上的过程!
2024-03-03 22:18:59
461
1
原创 [Python3]BFS优先队列分枝限界法求解0/1背包问题
1)我们采用二叉树的BFS来搜索最合适的结点,我们定义了BFS函数,将最大价值(max_value)设置为0,实例化一个优先队列(queue.PriorityQueue),这个优先队列实际上是由堆来维持最大值的,实例化根节点,只传入根节点(根节点的level=-1),使用.put()将根节点传入优先队列中。感觉网络上关于优先队列分枝限界法求解0/1背包问题的python代码很少,下面给出一些自己学习过程中的心得体会,(以下代码是从各路大神那里学来的)以及详细代码解释,如有错误请务必留言指正!
2023-10-23 23:49:27
381
1
原创 [Python]递归回溯N皇后问题
2)其中col表示列的索引,因此for循环表示对所有的列查看是否能放置皇后,check(row,col,res)表示判断(row,col)这个位置能否放置下一个皇后,如果confirm为True,则在res数组索引为row处存储该皇后将要放置的列的索引,也就是res[row] = col,并且调用自己,对下一行的所有列进行遍历,最后将res[row] = 0,这里的意思是将该行的列索引置为0,系统栈回溯到上一层,使得col++,来探索更多的col可能性。1.使用了一个全局变量count来记录组数。
2023-10-15 23:34:42
144
1
原创 [Python3]回溯递归法求解n个整数中取出m个元素的排列组合问题
当我们执行第二次backtrack,此时current_permutaion=[1,3],len(..)==m之后将current_permutaion中的元素append到permutaion之后,我们的第一组组合[1,3]就已经排列好了。我们这时候会回到上一层的递归状态,简单来说, 当。紧接着我们将元素3 pop 出去,此时current_permutaion=[1],那么我们这时候按理说应该去寻找元素5,是如何做到的呢?的值不会回到1,而会继续递增到2,然后在下一次递归中,会考虑。
2023-10-15 18:26:02
381
1
原创 [Python3]leetcode.求解一个整数数组划分为两个子数组的问题
【代码】[Python3]leetcode.求解一个整数数组划分为两个子数组的问题。
2023-10-12 15:15:23
189
1
原创 [Python3]leetcode.相同的树(非递归)
(3)每一次pop(0)出列表的前两个值进行比较,pop(0)之后列表为空,判断完边界条件之后按照顺序将弹出的结点元素的左边结点加入列表,再将右边的结点元素加入列表,再次进入while循环,当列表为空的时候退出循环,返回True。(2)考虑好边界条件,条件1:都为空的时候继续循环,条件2:一个为空一个不为空的时候返回false,条件3:节点值不同时返回false。(1使用列表存储结点。
2023-09-21 15:06:56
72
原创 [Python3]leetcode.相同的树(递归)
(1)找好出口条件,左树与右树都为空的时候返回false,一个为空一个不为空的时候返回false.(2)同时递归比较左树与右树是否相等。
2023-09-21 14:34:57
75
原创 [Python3]leetcode94.二叉树中序遍历(栈)
(2)、当(root = root.left)指向结点为空时,栈最上面的结点出栈并加入空列表,root指向出栈元素的右节点。若出栈元素的右节点不为空则执行(1),若为空则重复执行(2)。(1)、在结点不为空或栈不为空的情况下,从最顶部结点到最左结点依次开始入栈直至结点为空。
2023-09-13 18:50:31
76
原创 使用Mac进行深度学习时遇到.DS_Store报错解决办法
在for循环调用list_class之前将'.DS_Store'删除(roses在列表中序号为0,那DS_Store序号为1,用del 将list_class中的第一个位置删除,便可以顺利执行)此时os.listdir(file_path)执行后,list_class中如下所示(使用的flower数据集,通过打点并且debug功能可以找到如下表示的列表)如此时执行将数据集分为训练集和验证集操作,那么只有roses的文件夹可以被成功分为训练集和验证集,for循环执行到'.DS_Store'时将会报错。
2023-07-29 18:56:45
1165
原创 Python3 234.回文链表-leetcode[完整测试代码]
4.应该经过while判断之后再pre = slow,如果把pre=slow写在最末尾,那么就成了先移动再判断,根据上面第三点就会发生本应该退出while循环了,pre却指向了slow,若一定要先移动再比较,可以将下面比较值的代码中的pre改成prev,则同样能提交。1.用的快慢指针,slow每次前进一步,就将slow前的结点插入到以pre为头指针的链表的每一个结点之前,也就是反转。3.pre作为反转链表的第一个指针,slow作为原链表的第一个指针进行依次比较。,请你判断该链表是否为回文链表。
2023-07-13 00:28:09
270
1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅