news 2026/4/3 1:50:28

学习日记day56

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
学习日记day56

Day56_0113

专注时间:目标是:5h30~6h。实际:4h20min

每日任务:饭后的休息(25min),学习间歇的休息(15min)都用手表计时器来监督

40min=二刷1道力扣hot100(如果是hard,只做一道就好完成情况及时长:?1h35min);【学习资源:PyTorch官方文档:https://docs.pytorch.ac.cn/tutorials/beginner/basics/intro.html】1.5h=PyTorch工程实操(完成情况及时长:0把第二个pytorch网页的“局部禁用梯度计算”看懂,就去看第一个pytorch网页);1h=周志华机器学习(完成情况及时长:50min+6);1.5h+(claude的RL4LLM学习路径,时长:40min+50+25)

学完机器学习,然后是深度学习。学完PyTorch,之后是Transformer与大模型架构(见Gemini3pro生成的阶段2)。学快一点。准备一个GitHub Repo把所有手撕过的算法整理进去,这会是最好的复习资料。

必须熟记的API、最简洁的GPT实现、带注释的Transformer实现、推荐系统模型库(包含主流模型实现)还有“Let's build GPT”系列学习视频见Claude的第20页。冰哥听讲座,老师说:GPT是最好的老师,不需要其他家教,清华学生智商120,GPT有140。多用大模型来帮助学习。

学习内容:

总结与心得:学习过程中感觉claude说的真对“不要死磕理论,而是先上手代码,跑通之后再去学细节”。如果先学理论,比如tensor,等代码里真正接触到tensor时候已经忘光了理论知识。目前这个学习效率非常高啊,机器学习和RL4LLM都在有序推进,但是专注时长不够,不然能同时学习pytorch了!还要努力。专注时间进步了,但是早上起来和洗澡回来的时间没用好,刷抖音了。

《105.从前序与中序遍历序列构造二叉树》

# Definition for a binary tree node. # class TreeNode(object): # def __init__(self, val=0, left=None, right=None): # self.val = val # self.left = left # self.right = right class Solution(object): def buildTree(self, preorder, inorder): """ :type preorder: List[int] :type inorder: List[int] :rtype: Optional[TreeNode] """ #注意这个解法只适用于无重复值的二叉树 #遇到了三个问题:找元素索引的方法错误、数组切片范围不确定、对返回值的正确性有疑问。 #审题审错了,是前序和中序 #找index: list.index(val) if not preorder or not inorder: return None val = preorder[0] mid = inorder.index(val) root = TreeNode(val) #数组切片范围,尤其是node.right时候的,想不出来,因为知道要去划分preorder但是不知道怎么写 #因为没想到用*元素数量*来划分 root.left = self.buildTree(preorder[1:mid+1],inorder[:mid]) root.right = self.buildTree(preorder[mid+1:],inorder[mid+1:]) return root

学习defaultdict(int):

```python

# 导入Python标准库collections中的defaultdict类

# defaultdict是dict的子类,用于解决普通字典访问不存在的键时抛出KeyError的问题

from collections import defaultdict

# 创建一个defaultdict实例,指定默认工厂函数为int

# 1. defaultdict的核心特性:当访问不存在的键时,会自动调用默认工厂函数生成一个默认值并赋值给该键

# 2. 这里int作为默认工厂函数,无参数调用时返回0(int()的默认返回值)

# 3. 变量名cnt是count的缩写,通常用于表示"计数器",符合该变量的使用场景

# 4. 该对象兼具字典的所有特性,同时新增了默认值自动生成的功能

cnt = defaultdict(int)

```

### 补充说明:

1. **默认值逻辑**:当执行 `cnt['new_key']` 时,若 `'new_key'` 不存在,会自动执行 `int()` 生成默认值 `0`,并将 `'new_key': 0` 存入字典

2. **常见用途**:用于统计元素出现次数(如统计字符串中字符频率、列表中元素频次等)

3. **与普通dict的区别**:普通dict需通过 `dict.get(key, 0)` 手动指定默认值,而defaultdict会自动处理

4. **扩展场景**:若将默认工厂函数改为 `list`,则默认值为空列表 `[]`,可用于分组统计等场景

《437.路径总和3》

from collections import defaultdict from typing import Optional # 定义二叉树节点(题目中已给出,这里补充方便理解) class TreeNode: def __init__(self, val=0, left=None, right=None): self.val = val self.left = left self.right = right class Solution: def pathSum(self, root: Optional[TreeNode], targetSum: int) -> int: # 哈希表:key=前缀和,value=该前缀和出现的次数 cnt = defaultdict(int) # 初始化:前缀和为0的情况出现1次(处理从根节点开始的路径) cnt[0] = 1 ans = 0 # 最终答案,统计符合条件的路径数 # 递归函数: # node:当前遍历的节点 # s:从根节点到当前节点的父节点的前缀和(当前节点值还没加进去) def dfs(node: Optional[TreeNode], s: int) -> None: # 递归终止条件:节点为空,直接返回 if node is None: return # 声明ans是外部函数的变量(非局部变量),否则无法修改 nonlocal ans # 把当前节点值加入前缀和,得到「根到当前节点」的前缀和 s += node.val # 核心逻辑: # 找有多少个前缀和等于 s - targetSum,这就是以当前节点为终点的符合条件的路径数 # 比如s=10,targetSum=5,那么找前缀和为5的次数,就是有多少个起点能到当前节点和为5 ans += cnt[s - targetSum] # 把当前节点的前缀和加入哈希表(供子节点使用) cnt[s] += 1 # 递归遍历左子树 dfs(node.left, s) # 递归遍历右子树 dfs(node.right, s) # 回溯:撤销当前前缀和的计数(因为遍历完当前节点的子树后,要回到父节点,不能影响其他分支) cnt[s] -= 1 # 从根节点开始遍历,初始前缀和为0(根节点的父节点不存在,前缀和为0) dfs(root, 0) return ans
class Solution: def pathSum(self, root: Optional[TreeNode], targetSum: int) -> int: # 统计以node为起点,路径和等于target的数量 def count_path(node, target): if not node: return 0 # 当前节点值等于target,算1条;否则继续找 res = 1 if node.val == target else 0 # 递归找左子树(剩余目标:target - node.val) res += count_path(node.left, target - node.val) # 递归找右子树 res += count_path(node.right, target - node.val) return res if not root: return 0 # 总数量 = 以当前节点为起点的数量 + 左子树所有节点为起点的数量 + 右子树所有节点为起点的数量 total = count_path(root, targetSum) total += self.pathSum(root.left, targetSum) total += self.pathSum(root.right, targetSum) return total
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/2 3:15:20

ChatGPT优化哪家好?深度解析专业团队如何释放AI商业潜力

随着人工智能逐渐融入企业运营的各个环节,如何高效、精准地利用ChatGPT等工具,已成为提升竞争力的关键。单纯的技术接入已远远不够,深入优化与场景化落地能力才是价值所在。选择专业的优化团队,能够帮助企业将AI的潜力转化为实际的…

作者头像 李华
网站建设 2026/3/27 13:02:30

python基于vue的地方特产销售商城限时秒杀系统django flask pycharm

目录基于Python与Vue的地方特产销售商城限时秒杀系统开发技术路线相关技术介绍核心代码参考示例结论源码lw获取/同行可拿货,招校园代理 :文章底部获取博主联系方式!基于Python与Vue的地方特产销售商城限时秒杀系统 该系统整合Python后端框架&#xff08…

作者头像 李华
网站建设 2026/3/27 10:12:11

中国电网Java面试被问:Dubbo的服务目录和路由链实现

一、服务目录(Directory)核心设计 1. 服务目录的核心作用 图表 代码 复制 下载 全屏 graph TBA[服务消费者] --> B[服务目录Directory]B --> C[RegistryDirectory]B --> D[StaticDirectory]C --> E[服务发现]C --> F[配置变更监听]C …

作者头像 李华
网站建设 2026/3/25 13:17:15

ALS 算法详解:怎么解开“推荐系统”的死结?

写在前面的话 你有没有想过,为什么刚才在淘宝搜了“键盘”,下一秒打开抖音就给你推“机械键盘测评”?或者 Netflix 是怎么知道你可能会喜欢《黑镜》的? 这一切背后的功臣,往往是矩阵分解。而 ALS(交替最小二…

作者头像 李华
网站建设 2026/3/27 22:17:57

手把手实现3D肺结节检测:基于Faster R-CNN的从CT处理、训练到部署的五步代码级实战与避坑指南

文章目录 毕设攻坚:3D Faster R-CNN实现肺部结节检测系统全流程,从CT影像到智能诊断 一、先懂“3D肺部结节检测”的毕设意义 二、技术拆解:3D Faster R-CNN的核心逻辑 1. 3D Faster R-CNN的架构解析 2. 肺部结节检测的核心挑战 三、实战:3D肺部结节检测系统的毕设级实现 1.…

作者头像 李华
网站建设 2026/3/31 4:36:40

基于SpringBoot的家教信息匹配与预约系统设计与实现

一、系统开发背景与意义 在教育需求多样化的当下,家教作为个性化教育的重要补充,市场需求持续增长。但传统家教对接模式存在明显短板:学员家长需通过熟人介绍、线下中介等方式寻找家教,信息来源有限且真实性难辨;家教老…

作者头像 李华