深度学习代码学习笔记
深度学习代码学习笔记 setuptools 介绍是什么 简单使用 _ all _是什么 当我们向文件导入某个模块时,导入的是该模块中那些名称不以下划线(单下划线“_”或者双下划线“__”)开头的变量、函数和类。因此,如果我们不想模块文件中的某个成员被引入到其它文件中使用,可以在其名称前添加下划线。 通过在模块文件中设置__all__变量,当其它文件以“from 模块名 import *”的形式导入该模块时,该文件中只能使用__all__ 列表中指定的成员。 12345678910111213141516171819# mytest.py__all__ = ['a','b','d'] #这里不同def a(): print('aaaaa')def b(): print('bbbbb') def c(): # 这里不同 print('ccccc')def _d(): ...
Deque队列
算法_Deque队列的使用 deque 的核心操作演示 1. 创建 deque 1234567from collections import deque# 创建空队列q1 = deque()# 创建包含初始元素的队列q2 = deque([1, 2, 3]) # deque([1, 2, 3])# 指定最大长度(超过自动删除左侧元素)q3 = deque(maxlen=3) 2. 入队操作(添加元素) 123456789q = deque([1, 2])# 右侧添加(最常用)q.append(3) # deque([1, 2, 3])# 左侧添加(层序遍历用不到)q.appendleft(0) # deque([0, 1, 2, 3])# 批量添加q.extend([4, 5]) # deque([0, 1, 2, 3, 4, 5])q.extendleft([-1]) # 注意:extendleft会逆序添加 3. 出队操作(取出元素) 12345q = deque([1, 2, 3, 4])# 左侧取出(层序遍历用这个)x =...
python的一些语法
python的一些语法 List和list . list(小写) Python 内置的列表类型,是语言本身的一部分 用于运行时创建和操作列表 可以直接使用:my_list = list() 或 my_list = [1, 2, 3] 2. List(大写) 来自 typing 模块的类型提示工具 仅用于静态类型检查,不影响程序运行 需要导入:from typing import List 告诉开发者/IDE/类型检查工具:这个变量应该是什么类型 场景:创建/初始化列表/函数参数 1234567891011121314151617# ✅ 正确:使用小写 listmy_list = list() # 创建空列表my_list = [] # 更常用的方式my_list = [1, 2, 3] # 带初始值的列表# ❌ 错误:大写 List 不能这样用my_list = List() # TypeError: 'List' 不能被实例化from...
二叉树
二叉树 一、二叉树的基本概念 二叉树(Binary Tree)是一种树形数据结构,它的每个节点最多只能有两个子节点,分别称为左子节点和右子节点。可以把它类比成 “每个家长最多只能有两个孩子” 的家族树。 关键术语: 根节点:树的最顶层节点,没有父节点。 叶子节点:没有任何子节点的节点。 节点的度:节点拥有的子节点数量(二叉树中最多为 2)。 树的深度 / 高度:从根节点到最远叶子节点的路径上的节点数。 满二叉树:所有非叶子节点都有两个子节点,且所有叶子节点在同一层。 完全二叉树:除最后一层外,每一层节点数都达到最大值,最后一层的叶子节点靠左排列。 二、二叉树的经典计算方法与公式(全是递归,学会这个公式就可以) 1. 二叉树的基本定义(Python 实现) 先定义二叉树节点的类,这是所有计算的基础: 123456789101112131415161718class TreeNode: """二叉树节点类""" def __init__(self, val=0, left=None,...
python的一些语法
二分法 1. 区间定义三选一 123闭区间 [left, right] → left = 0, right = len-1左闭右开 [left, right) → left = 0, right = len开区间 (left, right) → left = -1, right = len 2. 循环条件口诀 123闭区间:left <= right (区间不为空:至少有一个元素)左闭右开:left < right (区间不为空:left < right 时还有元素)开区间:left + 1 < right (区间不为空:中间至少有一个元素) 3. 边界移动口诀 123456当 nums[mid] < target 时:说明 target 在右边,左边界右移当 nums[mid] >= target 时:说明 target 在左边(或就是mid),右边界左移闭区间:left = mid + 1, right = mid - 1左闭右开:left = mid + 1, right = mid开区间:left...
算法_元组的基本用法
元组(tuple)的基本用法 元组不可修改 逗号 , 才是创建元组的关键,括号是可选的(除了空元组)。以下也是元组 列表采用中括号[] 1234567# 元组是不可变的DIRS = (0, 1), (1, 0), (0, -1), (-1, 0)# DIRS[0] = (1, 0) # ❌ 错误!元组不可修改# 如果是列表就可以修改DIRS_LIST = [[0, 1], [1, 0], [0, -1], [-1, 0]]DIRS_LIST[0] = [1, 0] # ✅ 可以修改 Python 元组完全入门指南 创建元组 1234567891011121314151617181920212223242526# 1. 用圆括号创建(最常用)t1 = (1, 2, 3, 4, 5)print(t1) # (1, 2, 3, 4, 5)# 2. 不用括号,直接用逗号分隔t2 = 1, 2, 3, 4, 5print(t2) # (1, 2, 3, 4, 5)# 3. 单元素元组(必须加逗号!)t3 = (1,) # 正确,这是一个元组print(t3) #...
算法_大小根堆
算法_大小根堆的使用 Python 中的堆(heapq)使用详解 Python 中的堆是通过 heapq 模块实现的,默认是小顶堆(最小堆)。 一、堆的基本操作 1. 导入和创建堆 123456789import heapq# 创建一个空堆heap = []# 或者将现有列表转为堆nums = [3, 1, 4, 1, 5, 9, 2]heapq.heapify(nums) # 原地转换,O(n)print(nums) # [1, 1, 2, 3, 5, 9, 4](小顶堆结构) 2. 基本操作 123456789101112131415161718192021222324252627import heapqheap = []# 添加元素heapq.heappush(heap, 5)heapq.heappush(heap, 2)heapq.heappush(heap, 3)heapq.heappush(heap, 1)print(heap) # [1, 2, 3, 5](堆序结构)# 弹出最小元素smallest = heapq.heappop(heap) # 返回...
算法_如何自定义sort
如何自定义sort sort(key=lambda x: x[0]) 的含义 python 1intervals.sort(key=lambda x: x[0]) 这行代码的意思是:按照每个区间的第一个元素(起始位置)进行排序 intervals 是一个列表,每个元素是 [start, end] key 参数指定排序的依据 lambda x: x[0] 是一个匿名函数,输入 x(每个区间),输出 x[0](区间的起始值),这个x是任意命名的 排序时会根据这个输出值来决定顺序 1234567891011121314151617181920# 1. 按单个字段排序data = [[1, 3], [2, 6], [8, 10], [15, 18]]data.sort(key=lambda x: x[0]) # 按第一个元素升序data.sort(key=lambda x: x[1]) # 按第二个元素升序# 2. 按多个字段排序data.sort(key=lambda x: (x[0], x[1])) # 先按第一个,再按第二个data.sort(key=lambda x:...
实践日记_AlphaPose微调
链表 链表(Linked List)是什么 链表是一种线性数据结构,由一系列节点组成,每个节点包含数据和指向下一个节点的指针。 生活中的类比 类比1:寻宝游戏 每个地点有一张纸条 纸条上写着下一个地点的地址 你要按顺序一个一个找下去 类比2:火车车厢 每节车厢装着货物(数据) 车厢之间用挂钩连接(指针) 火车头就是链表的头节点 链表的基本结构 节点(Node) 1234class ListNode: def __init__(self, val=0, next=None): self.val = val # 节点存储的数据 self.next = next # 指向下一个节点的指针 链表示意图 123456单向链表:[数据|指针] → [数据|指针] → [数据|指针] → None 节点1 节点2 节点3具体例子:[1|*] --> [2|*] --> [3|*] --> None 为什么需要链表? 数组的缺点 12345678#...
论文阅读_ViT
An Image is Worth 16x16 Words: Transformers for Image Classification at Scale 基本信息 项目 内容 论文标题 An Image is Worth 16x16 Words: Transformers for Image Classification at Scale 作者 Kaiming He(何恺明)、Xiangyu Zhang、Shaoqing Ren、Jian Sun(微软亚洲研究院) 作者单位 Google Research 时间 2020 发表会议/期刊 全称 Vision Transformer 方法概览 特点 文章性质 输入 单张 RGB 图像 输出 分类 所属领域 CNN 存在一些局限: 问题 说明 局部感受野 卷积核只能看到局部区域,难以建模长距离依赖 归纳偏置过强 平移不变性、局部性等假设可能限制模型表达能力 难以扩展 模型变大时性能提升有限 创新点 首次成功地将 纯...
