- 博客(48)
- 收藏
- 关注
原创 macOS安装web3.py失败的解决方法
如果有错误信息包含类似 error: architecture not supported 的消息的话,说明是因为某些代码试图编译到的架构不支持的原因。macOS默认会同时试图编译到arm64架构,但是某些包是不支持编译到该架构的,因此需要使其只编译到x86_64架构。具体做法是,首先运行 export ARCHFLAGS="-arch x86_64" ,再使用pip安装web3即可。...
2021-02-17 14:17:04
829
原创 服务器后台运行Jupyter Notebook
Jupyter 是一个在线IDE + 增强版的交互式shell安装condaconda install -c conda-forge notebookpippip install notebook运行本地运行(Windows/Ubuntu桌面)jupyter notebook访问显示的地址即可(默认会自动打开浏览器)服务器运行(Ubuntu 16.04+)生成配置文件到~/.jupyter/jupyter_notebook_config.pyjupyter notebook -
2020-11-05 11:43:12
1332
原创 配置conda和pip镜像
conda注意:首先去Miniconda/Anaconda官网下载安装conda搜索各开源镜像站的Anaconda镜像,找到相应的配置指引,本文的配置方式摘自清华大学Anaconda镜像。创建并修改~/.condarc文件为下面的内容(清华源)。Windows需要执行conda config --set show_channel_urls yes,在C:\Users\{你的用户名}下生成.condarcchannels: - defaultsshow_channel_urls: tr
2020-11-05 11:40:53
1208
原创 (多头)自注意力机制的PyTorch实现
用于学习和复习的两份自注意力机制实现代码。自注意力使用了缩放点积作为打分函数,因此key和query的维数是一样的,实现很简单。from math import sqrtimport torchimport torch.nn as nnclass SelfAttention(nn.Module): dim_in: int dim_k: int dim_v: int def __init__(self, dim_in, dim_k, dim_v):
2020-11-03 22:32:21
17365
25
原创 Seq2Seq模型中的标签
seq2seq模型一般由一个编码器和一个解码器组成。编码器将token的embedding序列编码成分布式表示(可能是向量序列或者一两个单独的语义向量),然后解码器根据编码器的结果生成出一个向量的序列。解码器生成的向量序列根据下游任务的不同有不同的利用方式。**在使用seq2seq模型时,由于一些原因我们需要添加一些特殊的标签,或者叫dummy token,用来表示序列开始、序列结束、句子/段落的开始结束等等。**下面举例说明。假设某seq2seq模型被用作英中翻译,且我们的样本是这样的:x: "I
2020-10-30 21:01:51
784
原创 Unicode字符编码概要
Unicode字符编码模型首先讲「字符编码模型」,主要是为了阐明概念和说明术语,以提供讨论的上下文。在Unicode Technical Report #17 UNICODE CHARACTER ENCODING MODEL 中,将字符编码的结构建模为下面4层:ACR: Abstract Character Repertoire 抽象字符表The set of characters to be encoded, for example, some alphabet or symbol set
2020-10-30 20:58:58
783
原创 各种短线和引号字符
在输入和处理计算机文本时,一个很让人疑惑和感到麻烦的地方在于有很多相似短线和引号字符,本文解释了各种短线和引号字符的区别,以备查阅。短线各种短线符号:(表格中粗体表示ASCII字符,后表同)名称Unicode码示例一般用法Hyphen-Minus(连字符)U+002D-连字符(连接单词)/减号/负号Hyphen(连字符)U+2010‐(较少使用)用作连字符,用于连接单词,例如old-agedEn dash(连接号)U+2013–相当于to,连接两个
2020-10-30 20:57:28
3027
原创 n维立方体角、面、边的个数
在看Gilbert Strang的Introduction to the Linear Algebra (5th)的过程中看到一个有趣的问题:How many corners does a cube have in 4 dimensions? How many 3D faces? How many edges? A typical corner is (0, 0, 1, 0). A typical edge goes to (0, 1, 0, 0).现在试着回答一下对于n维立方体,这些性质是怎样的。
2020-10-30 20:56:14
4765
2
原创 Linux目录名含义
对于Linux的操作,一直是野路子出身,没有系统学习过,所以最近在看《Linux命令行大全》来系统学习。这本书的第三章《Linux系统》有一部分是解释Linux中各种目录的作用的。这些目录的名称大多都是缩写,但其究竟是什么的缩写和其来由都没有在本书说明,因此我在网上搜索整理的这份文档,以备查阅。/bin - Binaries./boot - Files required for booting./dev - Device files./etc - Et cetera. The name is in
2020-10-30 20:54:45
231
原创 Rouge安装
Rouge的安装向来很麻烦,这里给出在Ubuntu 16.04+和Windows 10两个系统下安装Rouge 1.5.5的简明步骤。UbuntuUbuntu一般自带perl,bash输入perl -v检查perl版本输入cpan -v检查cpan(perl的包管理器)的版本,初次使用会提示需要配置,一路Enter即可使用sudo cpan install XML::DOM安装必须的XML解析包下载ROUGE-1.5.5,该资源在网上随处可见,与操作系统无关,下载后运行目录下的perl脚本run
2020-10-30 20:53:59
816
原创 【论文笔记】Array programming with NumPy
(nature 2020) Array programming with NumPy概述这篇论文多维数组计算库Numpy的核心概念及其Python科学计算生态系统中的位置。Numpy诞生于2005年,建立在它的两位前辈Numeric和Numarray的基础之上,结合了两个库的优点,使得社区重新统一。到2020年,Numpy已经成为几乎每个Python科学/数值计算库的基础组成部分,包括SciPy、Matplotlib、pandas、scikit-learn、scikit-image等,并且因为Num
2020-10-30 20:52:52
527
1
原创 【论文笔记】Heterogeneous Graph Neural Networks for Extractive Document Summarization
文章使用异质图建模句子之间的关系,并将其用于抽取式摘要,取得了优于所有对比模型的效果(本文模型和对比模型均没有使用预训练语言模型,如BERT)。图的结构图中包含两类节点:词节点和句节点句节点与其中包含的词的节点相连接只有词节点和句节点之间的连接,同类节点之间不会连接是一个二分图(Bipartite Graph)节点初始化词节点300维的EmbeddingVocabulary大小为50000使用GloVe初始化Embedding删去停用词和标点符号删去10%的在整个数据集.
2020-09-14 19:25:18
828
1
原创 PyTorch LSTM偶现CUDNN_STATUS_INTERNAL_ERROR错误解决
网上该问题的解决方案有清空.nv缓存、修改Windows注册表等,但是都没什么作用。我发现网上出现该问题的人都用的是比较新的显卡和最新的cuda,推测是cuda版本过新所以不稳定,因此将10.2版本的cuda降级到10.1版本,该问题解决。...
2020-08-09 14:55:09
1675
原创 自动求解最优输运问题的笔记
最优输运问题本质上就是求解:γ=arg minγ∑i,jγi,jMi,j\gamma = \argmin_\gamma{\sum_{i, j}{\gamma_{i, j}M_{i, j}}}γ=γargmini,j∑γi,jMi,j使得:γ1=aγT1=bγ≥0\gamma 1 = a \newline\gamma^T 1= b \newline\gamma\geq 0 \newlineγ1=aγT1=bγ≥0上面公式中的MMM是cost矩阵(dim_a × dim_b),aa
2020-08-06 01:23:30
1094
原创 论文笔记:Sentence Mover’s Similarity: Automatic Evaluation for Multi-Sentence Texts Elizabeth
在翻译和摘要等文本生成任务中,为了节约人力和时间,我们需要一种自动评估机器生成文本的质量的方式。本文提出了一种计算(多个句子组成的)文本相似度的方式Sentence Mover’s Similarity(SMS)。SMS可以用来判断生成文本和参考文本之间的语义距离,从而评估机器生成本文的质量。在评估摘要文本上,基于SMS的方法与人类判断的相关性显著高于基于ROUGE的方法。SMS还可以用做强化学习训练生成模型时的奖励。在文本摘要任务上,根据人类评估,使用SMS训练的生成模型相比使用Rouge-L
2020-07-29 20:15:47
394
原创 2048游戏的自动算法(1)朴素蒙特卡罗方法
一句话概括:每一步我们需要按下四个方向键之一,可以看作往四个方向走一步。那么首先往某个方向走一步,然后随机游走统计最大步数,平均步数最多的那个方向认为是最佳方向。详细解释:2048游戏可以看作一个马尔可夫决策过程(Markov Decision Process,MDP),它的状态空间SSS是很大的,但是动作空间A={↑,↓,←,→}A=\{↑, ↓, ←, →\}A={↑,↓,←,→}却很小,且我们知道它的状态转移概率P(st∣st−1)P(s_t | s_{t - 1})P(st∣st−1)。在
2020-07-25 16:45:47
3706
1
原创 Ubuntu安装ROUGE-1.5.5步骤
Ubuntu一般自带perl,bash输入perl -v检查perl版本输入cpan -v检查cpan(perl的包管理器)的版本,初次使用会提示需要配置,一路Enter即可使用sudo cpan install XML::DOM安装必须的XML解析包下载ROUGE-1.5.5,该资源可以在网上找到,与操作系统无关,下载后运行目录下的perl脚本runROUGE-test.pl,若它正常运行不报错则一切OK下面是ROUGE-1.5.5内的安装说明,如果有添加环境变量、使用WordNet的需要,按.
2020-07-24 19:23:57
873
原创 配置IDEA自带的Maven的镜像源
打开File-Settings,搜索maven,勾选User settings file把{你的IDEA安装目录}\plugins\maven\lib\maven3\conf\settings.xml复制到上一步勾选的位置在<mirrors>元素内添加以下内容:<mirror> <id>alimaven</id> <mirrorOf>central</mirrorOf> <name>ali..
2020-07-22 15:54:01
3438
原创 Windows下关闭JShell窗口不会停止死循环
Oracle Java 11.0.5版本中,在Windows下打开jshell并输入一个死循环,例如while(true),然后关闭jshell窗口,该无限循环不会被终止,而是一直执行,这应该是个bug。...
2020-04-19 00:34:48
340
原创 Java中TreeMap、TreeSet存储对象和ArrayList.sort()的对象需要实现equals方法吗
不需要,只需实现Comparable或者传入Comparator即可,但是这样是不好的,除非是局部临时使用,应当避免。不需要的原因是TreeMap、TreeSet、ArrayList.sort()都只是用compareTo()方法,而不会使用equals()和hashcode()方法。特别地,ArrayList.sort()内部使用的是Arrays.sort(),而Arrays.sort()对于...
2020-04-11 18:34:29
358
原创 算法题 颜色分类 一趟遍历Java解法
题目来源于LeetCode。最简单的方法是两趟的,但是如果要求一趟完成,那么这道题的解法是和三路快速排序的做法是一模一样的。在三路快速排序中,我们维护三个指针left, i, right使得对于数组nums的区间[START...END]满足:nums[START, left) < PIVOTnums[left, i) == PIVOTnums(right, RIGHT] >...
2020-04-10 23:51:48
270
原创 经典算法题 数据流的中位数 Java代码实现
题目链接:面试题41. 数据流的中位数基本思想:使用一个最小堆minHeap(Java PriorityQueue默认为最小堆)和一个最大堆maxHeap,在输入数字的过程中,保证maxHeap.peek() <= minHeap.peek()maxHeap.size()与minHeap.size()相差不超过1维护上面两个属性很简单,且看代码:class MedianFind...
2020-04-10 22:26:40
286
原创 Java9中字符串内部改变浅析
Java8及以前,String内部使用一个char[]保存UTF-16格式字符串,但是这样做有几个问题:如果字符串中主要是ASCII字符,那么用16位的char来保存指利用了8位的ASCII字符相当于浪费了一半的空间在Java起源时,1个16位的char可以完美表示1个16位的UTF-16字符,但是,2^16 = 65536个字符显然无法表示世界上所有奇奇怪怪的字符,包括很多汉字,因此UTF...
2020-04-10 02:24:50
439
原创 从Math.round(-1.5)的结果起讨论Java中整数和浮点数的转换
Math.round(-1.5)结果是-1,但是为什么是-1网上居然众说纷纭,其实只需要看一看源码的javadoc就知道了(jdk11): /** * Returns the closest {@code long} to the argument, with ties * rounding to positive infinity. * * <p&...
2020-04-10 01:09:17
447
原创 开4N空间的自顶向下线段树(Top-down Segment Tree using 4N space)
线段树有很多种,但是最好理解、最好写的还是下面这种开4N空间的自顶向下线段树。public class SegmentTreeTopDown { private int[] tree; private int n; public SegmentTreeTopDown(int[] nums) { // in the worst case it occupy ...
2020-03-21 12:52:48
213
原创 怎么去做一件很难、工作量很大且没有正反馈的事情
最近在写毕业论文,我觉得痛苦无比,因为我的一些想法实现起来,不仅编码难度很大、费时,结果也很难预料。于是我最近十来天就特别地焦虑,但是事情没有做很多。故事是这样发生的:我终于鼓起勇气去写代码、看论文,但是努力很久也只得到“肯定不行”这样的负反馈,于是又焦虑起来。循环几次后,我就开始恐惧去碰论文了。我的进度如何可想而知。今天下午我又回忆起来,以前也是发生过这样的事情的:努力,又没有正反馈,那就是准...
2020-03-05 18:57:52
671
1
原创 LeetCode 310. Minimum Height Trees 解法
LeetCode 310. Minimum Height Trees 解法最简单的解法就是DFS遍历,即从每个节点出发,计算到达末端节点的最大路径长度,那么此路径长度最小的就是最矮树的根(可能有多个)。但是这个方法会超时,代码如下(Java):class Solution { public List<Integer> findMinHeightTrees(int n, in...
2020-03-02 20:44:10
254
原创 人工智能、神经网络、机器学习、深度学习的区别
人工智能:这理论上讲所有能干点什么比较复杂事情的机器或者程序都可以叫人工智能,例如使用预定义规则进行推理的专家系统、数学命题自动证明程序、神经网络、百度/Google翻译、小娜等语音助手。这个词学界一般不用,是个大而无当的噱头,用来吹牛用的,用的时候说明某些人缺经费、缺投资、缺名气了。神经网络:神经网络是对生物大脑的一种粗糙的数学建模,本质上是一个函数或者一个程序,它是机器学习和深度学习的常用...
2020-02-05 15:38:42
677
原创 卷积的简洁解释
卷积的简洁解释定义卷积是因为我们发现:一个系统在x时刻的输出往往不仅仅由x时刻的输入决定,还由x时刻之前甚至x时刻之后的输入决定。我们用g(x)表示时刻x的输入,f(t)表示离某时刻距离为t的的输入对输出的影响,那么系统在x时刻的输出可以表示为:h(x)=∫−∞+∞f(t)g(x−t)h(x) = \int_{-\infin}^{+\infin} f(t)g(x - t)h(x)=∫−∞+...
2020-01-28 18:00:39
308
原创 删除Win10英语国际键盘的方法
按下win+R打开运行,键入regedit点击确定打开注册表在注册表中依次展开:HKEY_CURRENT_USER\Keyboard Layout\Preload如果英语-国际键盘在输入法中排第i个位置,则删除注册表的第i + 1项,然后重启查看效果(在删除前,右键点击该位置,点击导出进行备份,这样如果删错了可以再恢复)...
2020-01-13 12:47:55
2002
原创 机器学习中的自注意力(Self Attention)机制详解
机器学习中的自注意力(Self Attention)机制详解自注意力公式如下:Att(Q,K,V)=ω(QKT)V Att(Q, K, V) = \omega(QK^T)V Att(Q,K,V)=ω(QKT)V其中Att(Q,K,V)Att(Q, K, V)Att(Q,K,V)是得到的注意力的值,QQQ、KKK、VVV分别是查询向量(Query Vector)矩阵、键向量(Key Vecto...
2019-11-17 12:38:04
14050
原创 Miniconda安装指南(Windows)
Miniconda安装指南(Windows)点击打开Miniconda安装地址选择适合自己的Miniconda版本并安装。这里我选择Miniconda3 Windows 64-bit一路下一步安装,注意选择自己想安装到的目录(最好非系统盘,因为比较大),最后一步把两个选项都勾选(无视警告即可)安装好后,右键点击开始按钮,打开Windows Powershell(管理员),输入以下命令,...
2019-11-13 00:44:22
4602
原创 红黑树bottom-up插入删除简要总结
目录插入操作删除操作插入操作插入空树,done父节点为黑色,done父节点为红色,看叔节点:1. 叔节点为黑色时,通过单旋(zig-zig)或者双旋(zig-zag)变成一个4-node2. 叔节点为红色时,通过变色修正,最后祖父节点变为红色,若再出现双红,则递归解决(如果递归到根,则需要把根节点染黑)top-down的插入则是从上到下拆开4-node,避免3-2情况出现。删...
2019-09-11 10:58:34
351
原创 第k个排列的确定方法
这篇文章——————————————————————————————————例如,对于这样一些数:[1, 2, 3, 4, 5, 6, 7],如何确定它的第k个排列(按字典序)?假设k = 2 * 4! + 3 * 3! + 2,考虑下面的一些排列:形如[1, 2, 3, 4, 5, 6, *]的排列是最小的1!个排列;形如[1, 2, 3, 4, 5, *, *]的排列是最小的2!个排...
2019-08-24 17:15:19
705
原创 Intellij IDEA使用Thymeleaf提示URI is not registered解决方法
在File | Settings | Plugins里搜索Thymeleaf,如果原来没有,就到Marketplace里安装这个插件,如果原来就有,Enable它。
2019-08-13 18:02:15
1908
2
原创 JavaScript获取鼠标控制权
如果使用HTML5开发游戏或者VR博物馆之类的应用,常常需要获取鼠标的控制权,也就是说简单地通过鼠标的移动来控制视角的旋转。直接使用监听mousemove事件是不可行的,因为当鼠标移动到浏览器或元素的边缘的时候,鼠标不能再移动,mousemove中鼠标的位置也不会再移动。这个可以通过Pointer Lock API / 指针锁定API来完成,它的使用很简单,只需要在某个事件监听器中(必须在某个...
2019-07-09 00:46:18
1150
原创 求数组最小的k个数
目录1. 利用partition函数的O(n)解法实现时间复杂度分析优缺点2. 利用最大堆的O(nlogk)解法实现时间复杂度分析优缺点写两种聪明的解法(更推荐第二种,原因见优缺点)。计数或者排序这些朴素的解法就不说了。1. 利用partition函数的O(n)解法实现定义partition函数,partition函数必须满足:传入一个数组和一个范围,返回一个index,在index左边...
2019-07-08 17:55:13
544
1
原创 分区相连的快速排序产生死循环的分析
分区相连的快速排序的正确实现和一种错误实现分区相连的快速排序指的是,Partition后的两个分区是相连的, 在这种分区方式中,partition后数组被分为左右两段,保证以下关系成立:partition[left...partitionIndex] <= partition[partitionIndex + 1, right]由于这两半分区是相连的,所以当左边或者右边的分区是空的时...
2019-07-08 13:19:14
862
原创 POJ 1922 Ride to School 解
这道题是小学级别的题目,不知道为什么https://web.stanford.edu/class/cs97si/assn1.html这里把它的难度标为5(和POJ1001这道有点麻烦的题难度相同),可能因为老外数学太差?题目http://poj.org/problem?id=1922答案using namespace std;int main(){ int n, v, t, ...
2019-07-02 11:38:33
181
原创 POJ 1001 Exponentiation 解
题目http://poj.org/problem?id=1001ExponentiationTime Limit: 500MS Memory Limit: 10000KTotal Submissions: 188015 Accepted: 45212DescriptionProblems involving the computation of exact values of ve...
2019-07-02 10:26:52
187
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人