自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(69)
  • 资源 (2)
  • 收藏
  • 关注

原创 python3实现冒泡排序、快速排序、插入排序、归并排序、原地归并排序、堆排序、桶排序、希尔排序、直接选择排序、计数排序、基数排序

冒泡排序#coding:utf-8# 冒泡排序# 最差时间复杂度O(n^2),平均时间复杂度O(n^2)def bubble_sort(lst): for i in range(len(lst)-1): for j in range(len(lst)-i-1): if lst[j]>lst[j+1]: # 相邻数据比较大小 lst[j+1],lst[j]=lst[j],lst[j+1]if __name__==

2021-02-20 00:44:18 210

原创 【搬运】pytorch,keras,tensorflow的模型代码框架

pytorch,keras,tensorflow的模型代码框架参考自此公众号文章,后续会不断地加详细一些pytorchfrom torch.optim as Optimizerfrom torch import nnimport torchclass modelName(nn.Module): def init(self,): # 加入每个层的实例化 # 常用如下 nn.Embedding() nn.RNN()

2021-01-03 22:45:02 225

原创 Transformer中的attention的来龙去脉

论文原文Attention is all you need:https://arxiv.org/pdf/1706.03762.pdf参考的链接:https://zhuanlan.zhihu.com/p/46990010https://www.tensorflow.org/tutorials/text/transformerhttps://segmentfault.com/a/11900000200210781 general的attention机制【以下为原文的翻译】注意力函数可视为将一个q

2020-11-26 02:38:34 627

原创 Transformer中self-attention、RNN、CNN的性能对比

论文原文Attention is all you need:https://arxiv.org/pdf/1706.03762.pdf输入序列(x1,x2,...,xn)(x_1,x_2,...,x_n)(x1​,x2​,...,xn​)输出序列(z1,z2,...,zn)(z_1,z_2,...,z_n)(z1​,z2​,...,zn​)xi,zi∈Rdx_i,z_i \in R^dxi​,zi​∈Rdn:序列长度d:表征维度k:卷积大小r:restricted self-attentio

2020-11-12 00:38:29 1112 1

原创 scrapy 爬虫报错 Forbidden by robots.txt

使用户scrapy.spider爬取网站的时候,遇到了Forbidden by robots.txt报错,robots.txt是网站爬取的规范协议,很多地方写需要将setting中的robotsbox_obey设置为False,但是这样做是有风险的,我这次报错主要是因为使用了两个月之前的代码再次爬取的时候没有更新cookie,只要更新一下就好了...

2020-10-14 09:26:03 446

原创 如何在github上给开源项目提交pull request

给开源项目提交PR的流程,我见过的最详细的文章https://www.pianshen.com/article/78051415011/

2020-10-09 14:50:44 314

原创 算法工程师面试系列-逻辑回归篇

逻辑回归的条件逻辑回归损失函数逻辑回归剃度下降逻辑回归的适用场景(需不需要归一化,对缺失值)

2020-09-29 23:24:16 177

原创 python multiprocessing并行数据处理的框架

使用multiprocessing中Pool类进行并行数据处理,以下代码来自于https://www.jb51.net/article/128936.htmimport multiprocessingimport time def func(msg): return multiprocessing.current_process().name + '-' + msg if __name__ == "__main__": pool = multiprocessing.Pool(proce

2020-09-22 17:52:15 236

原创 pytorch并行报错RuntimeError: unable to write to file</torch_xxx>

问题主要是使用multiprocessing在每一轮训练时并行随机产生数据时,job.get()数据超过了torch的暂存内存,参考了以下文章,加入代码或者降低了num_pool都没有解决我的问题https://blog.csdn.net/u012796629/article/details/105936386/最终我使用del data,在每轮训练结束时释放掉了该轮使用的数据就可以了...

2020-09-22 17:35:08 3817 1

原创 算法工程师面试系列-机器学习之树模型篇

本系列收集看到的网上讲解树模型比较详细的帖子(持续更新中)决策树单树模型主要包括ID3、C4.5以及CART;集成模型主要随机森林、BDT、GBDT、XGBOOST、catboost等知乎上的一个讲解决策树的三个算法ID3、C4.5以及CART;集成的思想bagging v.s. boosting集成模型:随机森林、BDT、GBDT以及XGBOOST;其中XGBOOST和随机森林在面试数据挖掘岗位的时候还是经常被问到的...

2020-09-21 23:15:02 123

原创 Transformers:如何使用bert模型预留的[unused*]

该链接https://www.zhihu.com/question/387534279中提到,可以直接使用bert模型预留的[unused*]加入下游任务的先验知识,将[unused*]直接替换成新的token。本文主要介绍如何直接使用transformers这个库实现这一功能首先将"vocab.txt"中的[unused*]替换成需要的token,如[line=*]但是如果直接调用transformer中的tokenizer:tokenizer = BertTokenizer.from_pretr

2020-06-08 17:07:43 3477 4

原创 DEBUG:pytorch训练时候没有问题,预测时候内存迅速增长,爆掉,out of memory的解决办法

在使用pytorch训练模型的时候,训练时候,内存十分平稳,预测的时候迅速增长,报内存不足的错误原始是忘记加no_grad解决方法:在预测的时候,加with torch.no_grad()with torch.no_grad(): for i,batch in enumerate(test_loader): pass...

2020-06-03 16:36:46 2679 3

原创 leetcode系列-填充每个节点的下一个右侧节点指针(populating next right pointers in each node)(多种解法)

分类:Tree难度:medium方法:1.层级遍历 2.拉链法填充每个节点的下一个右侧节点指针给定一个完美二叉树,其所有叶子节点都在同一层,每个父节点都有两个子节点。二叉树定义如下:struct Node {int val;Node *left;Node *right;Node *next;}填充它的每个 next 指针,让这个指针指向其下一个右侧节点。如果找不到下一个右侧节点,则将 next 指针设置为 NULL。初始状态下,所有 next 指针都被设置为 NULL。示例:

2020-05-29 23:33:29 170

原创 leetcode系列-验证二叉搜索树(validate binary search tree)(多种解法)

分类:Tree难度: medium算法:中序遍历 or 判断临界值验证二叉搜索树给定一个二叉树,判断其是否是一个有效的二叉搜索树。假设一个二叉搜索树具有如下特征:节点的左子树只包含小于当前节点的数。节点的右子树只包含大于当前节点的数。所有左子树和右子树自身必须也是二叉搜索树。示例 1:输入:2/ \1 3输出: true示例 2:输入:5/ \1 4/ \3 6输出: false解释: 输入为: [5,1,4,null,null,3,6]。根节

2020-05-21 23:36:55 149

原创 tensorflow/keras调用CPU而不使用GPU问题

今天遇到一个bug,使用一个tensorflow后端的keras模型的时候,速度巨慢,后面发现是模型只使用了CPU,没有调用GPU。1.解决方案https://blog.csdn.net/qq_40829288/article/details/90509417这个问题是由于tensorflow的版本高于tensorflow-gpu版本首先查看版本pip installtensorflow 1.12.0tensorflow-gpu 1.11.0所以脚本默认调用了tensorflow而不是te

2020-05-20 14:47:12 4281

原创 修改权限常用命令

1. 修改文件所有者chown -R 所有者用户名.组名 文件夹名称例如:chown -R zdz.nginx KooBox2. 赋权给所有用户chmod -R 777 文件夹

2020-05-17 22:25:21 1252

原创 BERT Sentence embedding基于bert的句子级别的向量表示

【搬运工】在某些情况下,比如我最近遇到的句子级别的序列标注任务,使用BERT得到句向量,是一个可以快速跑通baseline模型的选择,如何使用预训练bert表征句子向量,我自己常用的方法有以下三种1. [CLS] token对应的encoding最原始的方法,使用模型的[CLS] token对应的encoding,可以看huggingface的transformers首页的quick tour有简单的example,极易上手https://github.com/huggingface/transfor

2020-05-17 22:22:36 2983

原创 leetcode系列-二叉树的层序遍历(binary tree level order traversal)(超级经典系列)

分类:树难度:medium方法:队列二叉树的层序遍历给你一个二叉树,请你返回其按 层序遍历 得到的节点值。 (即逐层地,从左到右访问所有节点)。示例:二叉树:[3,9,20,null,null,15,7],3/ \9 20/ \15 7返回其层次遍历结果:[[3],[9,20],[15,7]]题解本题属于经典解法了1.将第1层所有节点push进队列,记录当前队列的长度l,即是这层的节点数2.将前l个节点依次出队,并记录其值,并且出队的节点的左右节点依

2020-05-12 21:43:51 153

原创 leetcode系列-寻找峰值(find peak element)(超级经典系列)

分类:array难度: medium算法:二分法寻找峰值峰值元素是指其值大于左右相邻值的元素。给定一个输入数组 nums,其中 nums[i] ≠ nums[i+1],找到峰值元素并返回其索引。数组可能包含多个峰值,在这种情况下,返回任何一个峰值所在位置即可。你可以假设 nums[-1] = nums[n] = -∞。示例 1:输入: nums = [1,2,3,1]输出:...

2020-04-18 00:08:49 473

原创 leetcode系列-删除排序数组中的重复项 II(remove duplicates from sorted array ii)(超级经典系列)

分类:array难度:medium删除排序数组中的重复项 II给定一个排序数组,你需要在原地删除重复出现的元素,使得每个元素最多出现两次,返回移除后数组的新长度。不要使用额外的数组空间,你必须在原地修改输入数组并在使用 O(1) 额外空间的条件下完成。示例 1:给定 nums = [1,1,1,2,2,3],函数应返回新长度 length = 5, 并且原数组的前五个元素被修改为...

2020-04-13 22:13:57 120

原创 leetcode系列-最大数(largest number)(超级经典系列)

分类:sort难度:medium最大数给定一组非负整数,重新排列它们的顺序使之组成一个最大的整数。示例 1:输入: [10,2]输出: 210示例 2:输入: [3,30,34,5,9]输出: 9534330说明: 输出结果可能非常大,所以你需要返回一个字符串而不是整数。题解转化成字符串,然后排序,排序的原则需要注意前序数字较大原题解链接如下:https://lee...

2020-04-07 22:25:40 328

原创 leetcode系列-颜色分类(sort colors)

分类:array难度:medium颜色分类给定一个包含红色、白色和蓝色,一共 n 个元素的数组,原地对它们进行排序,使得相同颜色的元素相邻,并按照红色、白色、蓝色顺序排列。此题中,我们使用整数 0、 1 和 2 分别表示红色、白色和蓝色。注意:不能使用代码库中的排序函数来解决这道题。示例:输入: [2,0,2,1,1,0]输出: [0,0,1,1,2,2]进阶:一个直观的...

2020-04-07 22:15:16 159

原创 leetcode系列-简化路径(simplify path)(极简代码系列)

分类:stack难度:medium以 Unix 风格给出一个文件的绝对路径,你需要简化它。或者换句话说,将其转换为规范路径。在 Unix 风格的文件系统中,一个点(.)表示当前目录本身;此外,两个点 (…) 表示将目录切换到上一级(指向父目录);两者都可以是复杂相对路径的组成部分。更多信息请参阅:Linux / Unix中的绝对路径 vs 相对路径请注意,返回的规范路径必须始终以斜杠 / ...

2020-04-02 13:10:48 167

原创 leetcode系列-排序链表(sort list)(超级经典系列)

分类:链表难度:medium方法:归并排序在 O(n log n) 时间复杂度和常数级空间复杂度下,对链表进行排序。示例 1:输入: 4->2->1->3输出: 1->2->3->4示例 2:输入: -1->5->3->4->0输出: -1->0->3->4->5题解来源于https://le...

2020-03-29 21:44:50 188

原创 leetcode系列-对链表进行插入排序(insertion sort list)(看到这个题解,我都惊呆了系列)

分类:链表难度:medium方法:指针加速对链表进行插入排序对链表进行插入排序。插入排序的动画演示如上。从第一个元素开始,该链表可以被认为已经部分排序(用黑色表示)。每次迭代时,从输入数据中移除一个元素(用红色表示),并原地将其插入到已排好序的链表中。插入排序算法:插入排序是迭代的,每次只移动一个元素,直到所有元素可以形成一个有序的输出列表。每次迭代中,插入排序只从输入数据中...

2020-03-26 20:46:44 191

原创 leetcode系列-跳跃游戏(JUMP GAME)(看到这个题解,我都惊呆了系列)

分类:array难度:medium跳跃游戏给定一个非负整数数组,你最初位于数组的第一个位置。数组中的每个元素代表你在该位置可以跳跃的最大长度。判断你是否能够到达最后一个位置。示例 1:输入: [2,3,1,1,4]输出: true解释: 我们可以先跳 1 步,从位置 0 到达 位置 1, 然后再从位置 1 跳 3 步到达最后一个位置。示例 2:输入: [3,2,1,0,4...

2020-03-26 20:37:27 490

原创 linux vim修改文件的常用命令

进入文件vi xxx进入文件后进入编辑模式按i键编辑完成退出编辑模式按esc键不保存退出文件,加叹号为强制:q:q!保存但不退出文件,加叹号为强制:w:w!保存并且退出文件,加叹号为强制:wq:wq!...

2020-03-25 21:58:33 148

原创 linux解压文件命令

解压.tar.gztar xzvf xx.tar.gz解压.zipunzip xx.zip解压.gzgunzip xx.gz

2020-03-25 21:53:06 125

原创 leetcode系列-旋转图像

分类:array难度:medium给定一个 n × n 的二维矩阵表示一个图像。将图像顺时针旋转 90 度。说明:你必须在原地旋转图像,这意味着你需要直接修改输入的二维矩阵。请不要使用另一个矩阵来旋转图像。题解第一步,转置第二步,将每一行逆转时间复杂度O(N**2)代码class Solution(object): def rotate(self, matrix):...

2020-03-25 21:45:22 167

原创 leetcode系列-重排链表(超级经典系列)

分类:链表难度:medium涉及内容:翻转链表、快慢指针确定中点等重排链表给定一个单链表 L:L0→L1→…→Ln-1→Ln ,将其重新排列后变为: L0→Ln→L1→Ln-1→L2→Ln-2→…你不能只是单纯的改变节点内部的值,而是需要实际的进行节点交换。示例 1:给定链表 1->2->3->4, 重新排列为 1->4->2->3.示例 ...

2020-03-25 21:42:36 189

原创 leetcode系列-螺旋矩阵(被边界搞到崩溃系列)

分类:array难度:medium螺旋矩阵给定一个包含 m x n 个元素的矩阵(m 行, n 列),请按照顺时针螺旋顺序,返回矩阵中的所有元素。示例 1:输入:[[ 1, 2, 3 ],[ 4, 5, 6 ],[ 7, 8, 9 ]]输出: [1,2,3,6,9,8,7,4,5]示例 2:输入:[[1, 2, 3, 4],[5, 6, 7, 8],[9,10...

2020-03-25 21:36:34 197

原创 leetcode系列-在排序数组中查找元素的第一个和最后一个位置(被边界搞到崩溃系列)

分类:array难度:medium在排序数组中查找元素的第一个和最后一个位置给定一个按照升序排列的整数数组 nums,和一个目标值 target。找出给定目标值在数组中的开始位置和结束位置。你的算法时间复杂度必须是 O(log n) 级别。如果数组中不存在目标值,返回 [-1, -1]。示例 1:输入: nums = [5,7,7,8,8,10], target = 8输出: ...

2020-03-19 21:16:07 171

原创 leetcode系列-删除排序链表中的重复元素 II(这题我会做系列)

分类:链表难度:medium方法:双指针删除排序链表中的重复元素 II给定一个排序链表,删除所有含有重复数字的节点,只保留原始链表中 没有重复出现 的数字。示例 1:输入: 1->2->3->3->4->4->5输出: 1->2->5示例 2:输入: 1->1->1->2->3输出: 2->3题...

2020-03-18 19:20:59 229

原创 Pandas系列-DataFrame转字典dict类型

数据处理中经常需要将pandas中的DataFrame类型转dict类型常用的格式主要有以下三种按列转成一个dict,keys是df的columns,values是一个带index的dictimport pandas as pddf = pd.DataFrame({"name":["a","b","c"],"score":[2,3,5]})df.to_dict(orient="dict...

2020-03-17 15:33:17 1213

原创 leetcode系列-下一个排列(看到这个题解,我都惊呆了系列)

分类:array难度:medium下一个排列实现获取下一个排列的函数,算法需要将给定数字序列重新排列成字典序中下一个更大的排列。如果不存在下一个更大的排列,则将数字重新排列成最小的排列(即升序排列)。必须原地修改,只允许使用额外常数空间。以下是一些例子,输入位于左侧列,其相应输出位于右侧列。1,2,3 → 1,3,23,2,1 → 1,2,31,1,5 → 1,5,1题解...

2020-03-17 13:01:18 156

原创 leetcode系列-两两交换链表中的节点(这题我会做系列)

分类:链表难度:medium两两交换链表中的节点给定一个链表,两两交换其中相邻的节点,并返回交换后的链表。你不能只是单纯的改变节点内部的值,而是需要实际的进行节点交换。示例:给定 1->2->3->4, 你应该返回 2->1->4->3.题解以一个节点为node,永远交换node.next 和node.next.next不断循环这个过程即可...

2020-03-16 21:22:36 216

原创 leetcode系列-删除链表的倒数第N个节点(这题我会做系列)

分类:链表难度:medium方法:双指针删除链表的倒数第N个节点给定一个链表,删除链表的倒数第 n 个节点,并且返回链表的头结点。示例:给定一个链表: 1->2->3->4->5, 和 n = 2.当删除了倒数第二个节点后,链表变为 1->2->3->5.说明:给定的 n 保证是有效的。进阶:你能尝试使用一趟扫描实现吗?题解终...

2020-03-13 13:02:47 143

原创 leetcode系列-盛最多水的容器

分类:array难度:medium方法:双指针盛最多水的容器给你 n 个非负整数 a1,a2,…,an,每个数代表坐标中的一个点 (i, ai) 。在坐标内画 n 条垂直线,垂直线 i 的两个端点分别为 (i, ai) 和 (i, 0)。找出其中的两条线,使得它们与 x 轴共同构成的容器可以容纳最多的水。说明:你不能倾斜容器,且 n 的值至少为 2。图中垂直线代表输入数组 [1,...

2020-03-11 13:16:49 184

原创 leetcode系列-相交链表(看到这个题解,我都惊呆了系列)

分类:链表难度:easy方法:双指针相交链表编写一个程序,找到两个单链表相交的起始节点。如下面的两个链表:在节点 c1 开始相交。示例 1:输入:intersectVal = 8, listA = [4,1,8,4,5], listB = [5,0,1,8,4,5], skipA = 2, skipB = 3输出:Reference of the node with valu...

2020-03-11 12:59:11 256

原创 leetcode系列-环形链表(超级经典系列)

分类:链表难度:简单方法:双指针环形链表给定一个链表,判断链表中是否有环。为了表示给定链表中的环,我们使用整数 pos 来表示链表尾连接到链表中的位置(索引从 0 开始)。 如果 pos 是 -1,则在该链表中没有环。示例 1:输入:head = [3,2,0,-4], pos = 1输出:true解释:链表中有一个环,其尾部连接到第二个节点。示例 2:输入:head =...

2020-03-10 22:01:15 143

penn_treebank_tagset.xlsx

corenlp词性标注全部标签及含义excel版(自己整理了一下),详情见https://www.ling.upenn.edu/courses/Fall_2003/ling001/penn_treebank_pos.html

2020-06-17

Penn_Treebank_tag_set(corenlp英文全部词性标注含义及标签)

corenlp中的词性标注缩写含义使用的是Penn Treebank tag set,这是全部对应缩写的含义,这份资源下载自https://www.eecis.udel.edu/~vijay/cis889/ie/pos-set.pdf

2020-06-17

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除