studies
TODO
- 【
2021.11.11
】pytorch_trainer: 为 EvaluateCallback 添加各种预定义评估指标,如 acc、f1 等,目前只有 loss; - 【
2021.11.11
】论文:What does BERT learn about the structure of language? —— Bert 各层的含义; - 【
2021.11.10
】bert-tokenizer 自动识别[MASK]
等特殊标识; - 【
2021.11.07
】面试笔记:通识问题/项目问题 - 【
2021.10.22
】max_batch_size 估算
Done
- 【
2021.11.06-2021.11.12
】优化 auto-readme,使用上一次的 commit info,而不是默认 'Auto-README'- 参考:
git commit -m "$(git log -"$(git rev-list origin/master..master --count)" --pretty=%B | cat)"
- 说明:使用 origin/master 到 master 之间所有的 commit 信息作为这次的 message;
- 参考:
- 【
2021.11.10-2021.11.11
】bert 支持加载指定层 ->_test_load_appointed_layers()
- 【
2021.11.04-2021.11.08
】把 __test.py 文件自动加入文档测试(放弃)- 有些测试比较耗时,不需要全部加入自动测试;
- __test.py 针对的是存在相对引用的模块,如果这些模块有改动,会即时测试,所以也不需要自动测试
- 【
2021.11.01-2021.11.03
】pytorch-lightning 代码阅读
其他仓库
- Algorithm_Interview_Notes-Chinese: 在校期间的学习/面试笔记;
- bert_by_keras: 使用 keras 重构的 Bert;
- algorithm: 刷题笔记,实际上就是本仓库 algorithm 目录下的内容;
The following is Auto-generated
Repo Index
Algorithm Studies
题集-LeetCode [23] ¶
LeetCode No.0001 两数之和 (简单, 2021-10)
LeetCode No.0002 两数相加 (中等, 2021-10)
LeetCode No.0005 最长回文子串 (中等, 2021-10)
LeetCode No.0011 盛最多水的容器 (中等, 2021-10)
LeetCode No.0015 三数之和 (中等, 2021-10)
LeetCode No.0016 最接近的三数之和 (中等, 2021-10)
LeetCode No.0021 合并两个有序链表 (简单, 2021-10)
LeetCode No.0029 两数相除 (中等, 2021-10)
LeetCode No.0033 搜索旋转排序数组 (中等, 2021-10)
LeetCode No.0042 接雨水 (困难, 2021-10)
LeetCode No.0086 分隔链表 (中等, 2021-10)
LeetCode No.0104 二叉树的最大深度 (简单, 2021-10)
LeetCode No.0111 二叉树的最小深度 (简单, 2021-10)
LeetCode No.0167 两数之和2(输入有序数组) (简单, 2021-10)
LeetCode No.0187 重复的DNA序列 (中等, 2021-10)
LeetCode No.0240 搜索二维矩阵2 (中等, 2021-10)
LeetCode No.0352 将数据流变为多个不相交区间 (困难, 2021-10)
LeetCode No.0434 字符串中的单词数 (简单, 2021-10)
LeetCode No.0437 路径总和3 (中等, 2021-10)
LeetCode No.0441 排列硬币 (简单, 2021-10)
LeetCode No.0496 下一个更大元素 (简单, 2021-11)
LeetCode No.0611 有效三角形的个数 (中等, 2021-10)
LeetCode No.0859 亲密字符串 (简单, 2021-11)
题集-剑指Offer [47] ¶
剑指Offer No.0003 数组中重复的数字 (简单, 2021-11)
剑指Offer No.0004 二维数组中的查找 (中等, 2021-11)
剑指Offer No.0005 替换空格 (简单, 2021-11)
剑指Offer No.0006 从尾到头打印链表 (简单, 2021-11)
剑指Offer No.0007 重建二叉树 (中等, 2021-11)
剑指Offer No.0009 用两个栈实现队列 (简单, 2021-11)
剑指Offer No.0010 斐波那契数列-1 (简单, 2021-11)
剑指Offer No.0010 斐波那契数列-2(青蛙跳台阶) (简单, 2021-11)
剑指Offer No.0011 旋转数组的最小数字 (简单, 2021-11)
剑指Offer No.0012 矩阵中的路径 (中等, 2021-11)
剑指Offer No.0013 机器人的运动范围 (中等, 2021-11)
剑指Offer No.0014 剪绳子1 (中等, 2021-11)
剑指Offer No.0015 二进制中1的个数 (简单, 2021-11)
剑指Offer No.0016 数值的整数次方(快速幂) (中等, 2021-11)
剑指Offer No.0017 打印从1到最大的n位数(N叉树的遍历) (中等, 2021-11)
剑指Offer No.0018 删除链表的节点 (简单, 2021-11)
剑指Offer No.0021 调整数组顺序使奇数位于偶数前面 (简单, 2021-11)
剑指Offer No.0022 链表中倒数第k个节点 (简单, 2021-11)
剑指Offer No.0024 反转链表 (简单, 2021-11)
剑指Offer No.0025 合并两个排序的链表 (简单, 2021-11)
剑指Offer No.0026 树的子结构 (中等, 2021-11)
剑指Offer No.0027 二叉树的镜像 (简单, 2021-11)
剑指Offer No.0028 对称的二叉树 (简单, 2021-11)
剑指Offer No.0029 顺时针打印矩阵(3种思路4个写法) (中等, 2021-11)
剑指Offer No.0030 包含min函数的栈 (简单, 2021-11)
剑指Offer No.0031 栈的压入、弹出序列 (中等, 2021-11)
剑指Offer No.0032 层序遍历二叉树-1 (简单, 2021-11)
剑指Offer No.0032 层序遍历二叉树-2 (简单, 2021-11)
剑指Offer No.0032 层序遍历二叉树-3(之字形遍历) (简单, 2021-11)
剑指Offer No.0033 二叉搜索树的后序遍历序列 (中等, 2021-12)
剑指Offer No.0034 二叉树中和为某一值的路径 (中等, 2021-12)
剑指Offer No.0035 复杂链表的复制(深拷贝) (中等, 2021-12)
剑指Offer No.0036 二叉搜索树与双向链表 (中等, 2021-12)
剑指Offer No.0037 序列化二叉树 (困难, 2021-12)
剑指Offer No.0038 字符串的排列(全排列) (中等, 2021-12)
剑指Offer No.0039 数组中出现次数超过一半的数字(摩尔投票) (简单, 2021-12)
剑指Offer No.0040 最小的k个数(partition操作) (简单, 2021-12)
剑指Offer No.0041 数据流中的中位数 (困难, 2021-12)
剑指Offer No.0042 连续子数组的最大和 (简单, 2021-10)
剑指Offer No.0044 数字序列中某一位的数字 (中等, 2021-11)
剑指Offer No.0045 把数组排成最小的数 (中等, 2021-12)
剑指Offer No.0047 礼物的最大价值 (中等, 2021-11)
剑指Offer No.0048 最长不含重复字符的子字符串 (中等, 2021-11)
剑指Offer No.0054 二叉搜索树的第k大节点 (简单, 2021-11)
剑指Offer No.0055 二叉树的深度 (简单, 2021-11)
剑指Offer No.0063 买卖股票的最佳时机 (中等, 2021-11)
剑指Offer No.0067 把字符串转换成整数 (中等, 2021-11)
题集-剑指Offer(突击版) [2] ¶
题集-经典问题&代码 [10] ¶
剑指Offer No.0007 重建二叉树 (中等, 2021-11)
剑指Offer No.0016 数值的整数次方(快速幂) (中等, 2021-11)
剑指Offer No.0024 反转链表 (简单, 2021-11)
剑指Offer No.0029 顺时针打印矩阵(3种思路4个写法) (中等, 2021-11)
剑指Offer No.0031 栈的压入、弹出序列 (中等, 2021-11)
剑指Offer No.0035 复杂链表的复制(深拷贝) (中等, 2021-12)
剑指Offer No.0036 二叉搜索树与双向链表 (中等, 2021-12)
剑指Offer No.0038 字符串的排列(全排列) (中等, 2021-12)
剑指Offer No.0039 数组中出现次数超过一半的数字(摩尔投票) (简单, 2021-12)
剑指Offer No.0040 最小的k个数(partition操作) (简单, 2021-12)
More ...¶
基础-模拟、数学、找规律 [11] ¶
LeetCode No.0005 最长回文子串 (中等, 2021-10)
LeetCode No.0352 将数据流变为多个不相交区间 (困难, 2021-10)
LeetCode No.0441 排列硬币 (简单, 2021-10)
LeetCode No.0859 亲密字符串 (简单, 2021-11)
剑指Offer No.0014 剪绳子1 (中等, 2021-11)
剑指Offer No.0029 顺时针打印矩阵(3种思路4个写法) (中等, 2021-11)
剑指Offer No.0039 数组中出现次数超过一半的数字(摩尔投票) (简单, 2021-12)
剑指Offer No.0044 数字序列中某一位的数字 (中等, 2021-11)
剑指Offer No.0044 数字序列中某一位的数字 (中等, 2021-11)
剑指Offer No.0063 买卖股票的最佳时机 (中等, 2021-11)
剑指Offer No.0067 把字符串转换成整数 (中等, 2021-11)
技巧-位运算 [3] ¶
技巧-前缀和 [1] ¶
技巧-双指针、滑动窗口 [8] ¶
LeetCode No.0011 盛最多水的容器 (中等, 2021-10)
LeetCode No.0015 三数之和 (中等, 2021-10)
LeetCode No.0016 最接近的三数之和 (中等, 2021-10)
LeetCode No.0042 接雨水 (困难, 2021-10)
LeetCode No.0167 两数之和2(输入有序数组) (简单, 2021-10)
LeetCode No.0611 有效三角形的个数 (中等, 2021-10)
剑指Offer No.0021 调整数组顺序使奇数位于偶数前面 (简单, 2021-11)
剑指Offer No.0022 链表中倒数第k个节点 (简单, 2021-11)
技巧-哈希表(Hash) [4] ¶
技巧-贪心 [1] ¶
数据结构-堆、优先队列 [3] ¶
数据结构-字符串 [4] ¶
数据结构-数组、矩阵(二维数组) [4] ¶
数据结构-栈(单调栈)、队列 [9] ¶
LeetCode No.0496 下一个更大元素 (简单, 2021-11)
剑指Offer No.0006 从尾到头打印链表 (简单, 2021-11)
剑指Offer No.0009 用两个栈实现队列 (简单, 2021-11)
剑指Offer No.0009 用两个栈实现队列 (简单, 2021-11)
剑指Offer No.0030 包含min函数的栈 (简单, 2021-11)
剑指Offer No.0031 栈的压入、弹出序列 (中等, 2021-11)
剑指Offer No.0032 层序遍历二叉树-1 (简单, 2021-11)
剑指Offer No.0032 层序遍历二叉树-2 (简单, 2021-11)
剑指Offer No.0032 层序遍历二叉树-3(之字形遍历) (简单, 2021-11)
数据结构-树、二叉树 [16] ¶
LeetCode No.0104 二叉树的最大深度 (简单, 2021-10)
LeetCode No.0111 二叉树的最小深度 (简单, 2021-10)
LeetCode No.0437 路径总和3 (中等, 2021-10)
剑指Offer No.0007 重建二叉树 (中等, 2021-11)
剑指Offer No.0026 树的子结构 (中等, 2021-11)
剑指Offer No.0027 二叉树的镜像 (简单, 2021-11)
剑指Offer No.0028 对称的二叉树 (简单, 2021-11)
剑指Offer No.0032 层序遍历二叉树-1 (简单, 2021-11)
剑指Offer No.0032 层序遍历二叉树-2 (简单, 2021-11)
剑指Offer No.0032 层序遍历二叉树-3(之字形遍历) (简单, 2021-11)
剑指Offer No.0033 二叉搜索树的后序遍历序列 (中等, 2021-12)
剑指Offer No.0034 二叉树中和为某一值的路径 (中等, 2021-12)
剑指Offer No.0036 二叉搜索树与双向链表 (中等, 2021-12)
剑指Offer No.0037 序列化二叉树 (困难, 2021-12)
剑指Offer No.0054 二叉搜索树的第k大节点 (简单, 2021-11)
剑指Offer No.0055 二叉树的深度 (简单, 2021-11)
数据结构-设计 [3] ¶
数据结构-链表 [8] ¶
LeetCode No.0002 两数相加 (中等, 2021-10)
LeetCode No.0086 分隔链表 (中等, 2021-10)
剑指Offer No.0006 从尾到头打印链表 (简单, 2021-11)
剑指Offer No.0018 删除链表的节点 (简单, 2021-11)
剑指Offer No.0022 链表中倒数第k个节点 (简单, 2021-11)
剑指Offer No.0024 反转链表 (简单, 2021-11)
剑指Offer No.0025 合并两个排序的链表 (简单, 2021-11)
剑指Offer No.0035 复杂链表的复制(深拷贝) (中等, 2021-12)
算法-二分法 [9] ¶
LeetCode No.0029 两数相除 (中等, 2021-10)
LeetCode No.0033 搜索旋转排序数组 (中等, 2021-10)
LeetCode No.0240 搜索二维矩阵2 (中等, 2021-10)
LeetCode No.0352 将数据流变为多个不相交区间 (困难, 2021-10)
LeetCode No.0441 排列硬币 (简单, 2021-10)
剑指Offer No.0004 二维数组中的查找 (中等, 2021-11)
剑指Offer No.0011 旋转数组的最小数字 (简单, 2021-11)
剑指Offer No.0016 数值的整数次方(快速幂) (中等, 2021-11)
剑指Offer(突击版) No.0069 山峰数组的顶部 (简单, 2021-10)
算法-动态规划(DP、记忆化搜索) [8] ¶
LeetCode No.0005 最长回文子串 (中等, 2021-10)
剑指Offer No.0010 斐波那契数列-1 (简单, 2021-11)
剑指Offer No.0010 斐波那契数列-1 (简单, 2021-11)
剑指Offer No.0010 斐波那契数列-2(青蛙跳台阶) (简单, 2021-11)
剑指Offer No.0014 剪绳子1 (中等, 2021-11)
剑指Offer No.0042 连续子数组的最大和 (简单, 2021-10)
剑指Offer No.0047 礼物的最大价值 (中等, 2021-11)
剑指Offer No.0048 最长不含重复字符的子字符串 (中等, 2021-11)
算法-广度优先搜索(BFS) [3] ¶
算法-排序(快排) [4] ¶
算法-深度优先搜索(DFS) [10] ¶
LeetCode No.0111 二叉树的最小深度 (简单, 2021-10)
LeetCode No.0437 路径总和3 (中等, 2021-10)
剑指Offer No.0006 从尾到头打印链表 (简单, 2021-11)
剑指Offer No.0012 矩阵中的路径 (中等, 2021-11)
剑指Offer No.0012 矩阵中的路径 (中等, 2021-11)
剑指Offer No.0013 机器人的运动范围 (中等, 2021-11)
剑指Offer No.0017 打印从1到最大的n位数(N叉树的遍历) (中等, 2021-11)
剑指Offer No.0034 二叉树中和为某一值的路径 (中等, 2021-12)
剑指Offer No.0038 字符串的排列(全排列) (中等, 2021-12)
剑指Offer No.0054 二叉搜索树的第k大节点 (简单, 2021-11)
算法-递归(迭代)、分治 [16] ¶
LeetCode No.0021 合并两个有序链表 (简单, 2021-10)
LeetCode No.0104 二叉树的最大深度 (简单, 2021-10)
剑指Offer No.0006 从尾到头打印链表 (简单, 2021-11)
剑指Offer No.0007 重建二叉树 (中等, 2021-11)
剑指Offer No.0016 数值的整数次方(快速幂) (中等, 2021-11)
剑指Offer No.0024 反转链表 (简单, 2021-11)
剑指Offer No.0024 反转链表 (简单, 2021-11)
剑指Offer No.0025 合并两个排序的链表 (简单, 2021-11)
剑指Offer No.0025 合并两个排序的链表 (简单, 2021-11)
剑指Offer No.0026 树的子结构 (中等, 2021-11)
剑指Offer No.0027 二叉树的镜像 (简单, 2021-11)
剑指Offer No.0028 对称的二叉树 (简单, 2021-11)
剑指Offer No.0036 二叉搜索树与双向链表 (中等, 2021-12)
剑指Offer No.0039 数组中出现次数超过一半的数字(摩尔投票) (简单, 2021-12)
剑指Offer No.0055 二叉树的深度 (简单, 2021-11)
剑指Offer(突击版) No.0076 数组中的第K大的数字 (中等, 2021-10)
Coding Lab
¶
Work Utilsfind_best_threshold: 搜索最佳阈值(二分类)
BertTokenizer: Bert 分词器
ner_result_parse: NER 结果解析(基于 BIO 格式)
split: 将数据按比例切分
ImageCheck: 图片完整性检查
get_real_ext: 获取图像文件的真实后缀
¶
Pytorch ModelsDualNet: 双塔结构
SiameseNet: 孪生网络,基于双塔结构
SimCSE: SimCSE
Bert: Bert by Pytorch
BertPretrain: Bert 预训练(MLM + NSP)
SentenceBert: Bert 句向量
BertSequenceTagging: Bert 序列标注
BertTextClassification: Bert 文本分类
¶
Pytorch UtilsDictTensorDataset: 字典格式的 Dataset
ToyDataLoader: 简化创建 DataLoader 的过程
BertDataLoader: 简化 Bert 训练数据的加载
ContrastiveLoss: 对比损失(默认距离函数为欧几里得距离)
CrossEntropyLoss: 交叉熵
TripletLoss: Triplet 损失,常用于无监督学习、few-shot 学习
FGM: 对抗训练 - Fast Gradient Method (for NLP)
PGM: 对抗训练 - Projected Gradient Method (for NLP)
Trainer: Trainer 基类
set_seed: 设置全局随机数种子,使实验可复现
init_weights: 默认参数初始化
¶
Python Utilssimple_argparse: 一个简化版 argparse
ArrayDict: 数组字典,支持 slice
ValueArrayDict: 数组字典,支持 slice,且操作 values
BunchDict: 基于 dict 实现 Bunch 模式
FieldBunchDict: 基于 dataclass 的 BunchDict
ls_dir_recur: 递归遍历目录下的所有文件
files_concat: 文件拼接
get_caller_name: 获取调用者的名称
function_test_dn: 函数测试装饰器