- 博客(80)
- 资源 (45)
- 收藏
- 关注
原创 论文笔记 -《A Mixture of h-1 Heads is Better than h Heads》
摘要 多头注意神经结构已经在各种自然语言处理任务上取得了最先进的结果。 事实证明,它们是过度参数化的,注意力头可以被修剪而不会造成显著的性能损失。 论文提出:根据输入的不同,选择不同的header,提出了专注其中几个header的专家混合模型(MAE)。 MAE使用block coordinate descent (BCD:块协同下降算法)进行训练,该算法交替更新(1)选择header的参数和(2)header的参数。 机器翻译和语言建模实验表明,MAE 在这两个任务上都优于基线模型。 特别是在 WMT
2020-06-15 01:08:56
885
原创 ImportError: cannot import name a 和ModuleNotFoundError: No module named a原因和解决
一定要注意,这两个错误的原因是完全不一样的。ModuleNotFoundError: No module named ‘a’这个错误大家应该经常见到,原因很简单,就是引入包的路径不对。python在编译器比如pycharm运行时,会自动从项目根目录下的目录中寻找相应的包(二级目录),但是,在linux终端运行的时候,只会在当前目录下寻找相应的模块。因此,我们经常会遇到在编译器里面可以正常运行,但是在linux终端却运行失败的情况。解决办法:众所周知,python引入包的路径其实全都在sys.path这
2020-06-02 18:26:26
1295
原创 linux命令行查找指定文件内的内容跨度
grep -B 2 -A 8 --color=always ‘待续’ origin_all.txt | awk ‘/–/{if (x)print x;x="";next}{x=(!x)?$0:x"\t"$0;}END{print x;}’ | shuf -n 20 | sed ‘s/\t/\n/g’解释:–color=always查找内容颜色-B 2 -A 8表示包含’待续’的前2行和后8行,因此,查找出的内容是11行;awk ‘/–/{if (x)print x;x="";next}{x=(!
2020-05-20 12:06:40
583
原创 Linux删除指定时间的文件(比如几分钟前(后),几天前(后))
要执行这个命令分三步:1、先找出该目录下名字符合的文件;2、在过滤出指定之间内的文件;3、执行删除命令。1 找出指定条件的文件 - find 命令比如找出当前目录下的所有txt文件find ./ -name '*.txt'2 找出指定时间的文件找出最后20分钟内访问的文件find ./ -name ‘*.txt’ -amin -20 -ls找出最后1天内访问的文件find ./ -name ‘*.txt’ -atime -1 -ls找出最后20分钟内内修改过的文
2020-05-18 09:51:18
19807
原创 论文笔记 -《ERNIE-GEN: An Enhanced Multi-Flow Pre-training and Fine-tuning Framework for Natural...》
1、摘要 目前自然语言生成的预训工作对于下游任务的偏差问题关注不够。 为了解决这个问题,我们提出了一个增强的多流序列来排列预训练和微调框架 ERNIE-GEN,它通过生成机制和噪声感知生成方法来弥补训练和推理之间的差异。 为了使代更接近人类的书写模式,该框架引入了一个跨越代流,训练模型连续预测语义完整跨度,而不是逐字预测。ERNIE-GEN与现有的预训练方法不同,它将多粒度目标采样结合到预训练数据中,增强了编解码器之间的相关性。 实验结果表明,ERNIE-GEN 在一系列语言生成任务中,包括抽象概括(G
2020-05-14 18:48:01
2169
原创 pytorch 模型训练时多卡负载不均衡(GPU的0卡显存过高)解决办法(简单有效)
本文主要解决pytorch在进行模型训练时出现GPU的0卡占用显存比其他卡要多的问题。如下图所示:本机GPU卡为TITAN RTX,显存24220M,batch_size = 9,用了三张卡。第0卡显存占用24207M,这时仅仅是刚开始运行,数据只是少量的移到显卡上,如果数据在多点,0卡的显存肯定撑爆。出现0卡显存更高的原因:网络在反向传播的时候,计算loss的梯度默认都在0卡上计算。因此会比其他显卡多用一些显存,具体多用多少,主要还要看网络的结构。因此,为了防止训练由于 out of memory
2020-05-14 13:29:42
25625
49
原创 宏平均(Macro-averaging)、微平均(Micro-averaging)和权重平均(weight-averaging)的理解
很多博客关于宏平均,微平均,权重平均介绍了一大堆的公式,让人看了一头雾水,本文主要重点介绍怎么计算,从实例出发,相信大家在跟着算完一遍之后就知道这三个平均的意思了。相关定义:真正例(True Positive,TP):真实类别为正例,预测类别为正例。假正例(False Positive,FP):真实类别为负例,预测类别为正例。假负例(False Negative,FN):真实类别为正例,预测类别为负例。真负例(True Negative,TN):真实类别为负例,预测类别为负例。以正例为例计算:
2020-05-13 16:08:27
10373
2
原创 Mac终端配置ssh免密登陆教程
该方法和什么终端无关,主要是根据ssh key方式登陆,无需远程主机登录密码,非常方便。1 生成ssh秘钥和公钥文件进入本地终端:ssh-keygen -t rsa出现如下图所示,这时候请不要一直回车,输入相应的文件名称,因为不输入的话是默认生成id_rsa和id_rsa.pub两个文件。然而,由于很多人其实在本地配置了GitHub的钥匙,因此会存在这样的文件,所以在这里我们需要改个名,比如id_ssh。输入完钥匙文件名称后,在路径~/.ssh/下会生成文件id_ssh和id_ssh.pub
2020-05-12 16:42:41
11362
2
原创 语义相似度、句向量生成超强模型之SBERT《Sentence-BERT: Sentence Embeddings using Siamese BERT-Networks》
1 前言随着18年底Bert的面世,NLP进入了预训练模型的时代。各大预训练模型如GPT-2,Robert,XLNet,Transformer-XL,Albert,T5等等层数不穷。但是几乎大部分的这些模型均不适合语义相似度搜索,也不适合非监督任务,比如聚类。而解决聚类和语义搜索的一种常见方法是将每个句子映射到一个向量空间,使得语义相似的句子很接近。说到这,可能有的人会尝试将整个句子输入预训练模型中,得到该句的句向量,然后作为句子的句向量表示。但是这样得到的句向量真的好吗?在论文《Sentence-BER
2020-05-09 14:20:23
30931
17
原创 论文笔记 -《Align, Mask and Select: A Simple Method for Incorporating Commonsense Knowledge into ...》
本论文主要做了一下几件事:将常识知识加入预训练;提出了一种align,mask,select(AMS)方法,可自动构造了一个常识训练集;CommonsenseQA 、 Winograd Schema Challenge以及 GLUE任务的几个句子分类和推理任务上取得sota。AMS方法:首先,从ConceptNet中挑选一些三元组;(606,564 个)a.非英文去掉;b....
2020-04-12 23:21:56
826
4
原创 解决RuntimeError: reduce failed to synchronize: device-side assert triggered问题
首先,上一波报错信息:/pytorch/aten/src/THC/THCTensorIndex.cu:362: void indexSelectLargeIndex(TensorInfo<T, IndexType>, TensorInfo<T, IndexType>, TensorInfo<long, IndexType>, int, int, IndexTy...
2020-04-07 11:04:23
4423
4
原创 bert在预训练时的两个下游任务详解
一直很困惑bert在经过transformer的encoder之后的两个任务是怎么做的。比如:这两个任务的loss函数是什么?拿到encoder输出做了什么?很多人都是这么回答的:bert的loss就是下一句预测的分类loss和mask词的预测loss拿encoder输出直接算loss啊如果你继续问:那他们的loss都分别怎么算的?相信很多人都讲不出来。下面就详细在这阐...
2020-03-11 18:28:05
14600
28
原创 论文笔记 -《REALM: Retrieval-Augmented Language Model Pre-Training》
1、前言2019年可以说是语言模型快速发展的一年,BERT、XLNET、Albert等等模型不断刷新各个NLP榜单。在NLP榜单中比较引人注目的应该属于阅读理解型的任务,例如SQuAD等等。以SQuAD为例,模型需要阅读一段给定的文本,然后回答几个问题,问题如果存在答案,答案一定可以在文章中找到。所以说虽然叫阅读理解,但其实和序列标注有点相像,是在给定序列中标出答案段。而这篇论文针对的问题叫开放...
2020-03-06 16:30:07
3866
9
原创 手把手教你使用谷歌cloud tpu(从创建虚拟机到进行pytorch训练)
当然,要想用谷歌的东西,首先必须有一个谷歌的账号。如何创建谷歌账号不是本文的重点。本文是基于你有谷歌账号,并申请了免费的谷歌TPU的情况下进行的。如果申请了免费的TPU或者打算付费使用,请继续阅读。谷歌vm和tpu简单介绍vm其实就是虚拟机,相当于一个电脑,需要使用谷歌的电脑才能连接他们家的tpu节点。创建谷歌vm第一种方法:google cloud platform创建:地址:http...
2019-12-06 16:34:21
6330
原创 语言模型评价指标 bpc(bits-per-character)和困惑度ppl(perplexity)
困惑度ppl(perplexity)ppl是用在自然语言处理领域(NLP)中,衡量语言模型好坏的指标。它主要是根据每个词来估计一句话出现的概率,并用句子长度作normalize,公式为:S – 当前句子;N – 句子长度;p(wi) – 第i个词的概率p(wi|w1w2w3…wi-1) – 这个表示基于前i-1个词,计算得出第i个词的概率,但有的语言模型是可以利用双向的,不知道是不是会...
2019-11-23 21:00:12
19400
原创 pytorch,numpy根据权重取值 -- np.random.multinomial,np.random.choice和torch.multinomial函数
np.random.multinomial(n, pvals, size=None) -> 取到的次数分布数组该函数表示根据一个概率数组,取若干次,得到一个次数分布数组参数说明:–n : 从矩阵中取值次数;–pvals:根据概率取值,这是一个数组,并且所有数据之和为1;–size:输出的维度,默认为1,即1 x pvals例子:a = np.random.rand(6)p...
2019-11-07 20:45:56
4804
原创 pytorch, numpy利用另一个数组的索引进行重排序,如torch.gather.......
import torchtorch.manual_seed(1)logits = torch.rand(3, 10)label_ids = torch.rand(3, 10)print(logits)print(label_ids)sorted_logits, indices = logits.sort(dim=1)new_label_ids = label_ids.gather(...
2019-11-05 17:08:01
6861
1
原创 Bert/Transformer模型的参数大小计算
前段时间仔细研究了下Bert论文:《BERT: Pre-training of Deep Bidirectional Transformers for Language Understanding》。发现bert其实用的网络结构就是Transformer,因此,又去仔细看了下《All attention is all you need》。对Bert和Transformer有了一个大概的理解。但是其...
2019-10-17 12:07:02
46326
26
原创 pytorch的expand_as和expand
expand(*sizes) → Tensor参数:sizes的数组,可以是list,tuple,或者直接输入n, m例子:expand_as(other) → Tensor参数:tensorb = torch.arange(0, 6).view(6, 1, 1)print(b.shape) # torch.Size([6, 1, 1])c = torch.Tensor(6, 2...
2019-10-16 19:25:44
952
原创 pytorch中的scatter_add_函数解析
关于这个函数,很少博客详细的介绍。下面就我个人理解简单介绍下。函数:scatter_add_(dim, index_tensor, other_tensor) → 输出tensor参数:dim:表示需要改变的维度,但是注意,假如dim=1,并不是说self_tensor在dim=0上的数据不会改变,这个dim只是在取矩阵数据时固定了dim=1维的索引,不使用index_tensor矩阵中...
2019-10-16 17:13:52
13279
6
原创 numpy和pytorch实现简单的线性神经网络
numpy实现说明:一个全连接ReLU神经网络,一个隐藏层,没有bias。用来从x预测y,使用L2 Loss。h=W1Xh = W_1Xh=W1Xa=max(0,h)a = max(0, h)a=max(0,h)yhat=W2ay_{hat} = W_2ayhat=W2a这一实现完全使用numpy来计算前向神经网络,loss,和反向传播。forward passloss...
2019-10-15 13:34:02
619
原创 如何将多个jupyter的.ipynb文件合并为一个?
方法一:直接复制jupyter单元格选中需要合并的部分单元格,ctrl+c,直接粘贴至另外的jupyter窗口中即可方法二:借助nbmerge工具包安装:pip install nbmerge然后执行:nbmerge a.ipynb b.ipynb c.ipynb > merge.ipynb合并的个数不限,但至少2个。...
2019-10-04 23:14:01
11126
原创 利用awk+xargs命令关闭相应的进程
awk的基本使用1、-F参数:以某字符串分隔之前命令获取的字符串下图中,后面的print$1表示将第一个参数输出,就是zh_CN.
2019-09-10 23:08:27
634
原创 Docker的离线安装,在线安装,基本使用(镜像,容器,Dockfile)
docker基本原理https://www.jianshu.com/p/99cd35757c1adocker在线安装sudo yum install docker-ce查看版本docker -vdocker 离线安装linux离线安装docker (18.03.1-ce)启动systemctl docker startsystemctl docker restartsyst...
2019-08-01 09:54:04
2226
原创 Linux下配置jupyter notebok并进行远程访问(详细)+ 一键配置脚本
1、安装jupyter pip install jupyter2、生成配置文件jupyter notebook --generate-config3、配置文件的路径为:~/.jupyter/jupyter_notebook_config.py4、进入python环境,依次执行: python from notebook.auth import passwd passwd()...
2019-07-09 16:04:09
1572
原创 基于已有的Dgraph容器重新导入数据(详细)
1、用docker stop 关闭name 包含ratel和server的容器2、进入name中包含zero的容器里3、进入后会自动进入/dgraph文件夹下,文件夹内包含p、w、zw以及其他文件或文件夹,删除P和W两个文件夹。4、退出容器,并使用docker stop 关闭此容器(name中包含zero的容器)5、使用docker start 启动dgraph的三个容器(name 包...
2019-06-10 10:28:30
1969
1
原创 Linux查看指定行的内容命令
tail 命令1、不断刷新某文件尾部信息内容,默认10行tail -f filename2、输出某文件后10行内容tail -n 10 filename或者tail -n filename # 这个是默认10行head命令同tail命令,不在细说sed命令格式:sed -n “开始行,结束行p” 文件名 sed -n '7,15p' filiname ...
2019-06-02 23:43:58
4589
原创 解决 ImportError: libcublas.so.9.0: cannot open shared object file: No such file
本方法可以解决类似:ImportError: libcublas.so.【cuda版本】: cannot open shared object file: No such file问题可能原因,CUDA版本不对1、查看下版本信息cat /usr/local/cuda/version.txt 2、根据CUDA和tensorflow版本对应的关系表,检查自己的版本是否匹配3、如果不...
2019-05-31 14:35:53
49163
12
原创 Dgraph的基本使用经典教程(安装,数据导入,导出,删除,查询等)
一、安装Windows系统下安装Dgraph下载二进制文件dgraph-windows-amd64.tar.gzhttps://github.com/dgraph-io/dgraph/releases/download/v1.0.14/dgraph-windows-amd64.tar.gz解压,依次执行: dgraph zero dgraph alpha --lru_mb 2048 -...
2019-05-23 20:14:35
11575
11
原创 debian/ubantu下安装无cuda,cpu版本的caffe
1、安装依赖sudo apt-get install libprotobuf-dev libleveldb-dev libsnappy-dev libopencv-dev libhdf5-serial-dev protobuf-compilersudo apt-get install --no-install-recommends libboost-all-devsudo apt-get i...
2019-05-09 15:45:54
337
原创 查看磁盘,文件夹大小的常用linux命令
一、df命令使用1、查看磁盘使用情况[root@testoracle]# df说明:linux中df命令的输出清单的第1列是代表文件系统对应的设备文件的路径名(一般是硬盘上的分区);第2列给出分区包含的数据块(1024字节)的数目;第3,4列分别表示已用的和可用的数据块数目。用户也许会感到奇怪的是,第3,4列块数之和不等于第2列中的块数。这是因为缺省的每个分区都留了少量空间供系统管理员使...
2019-05-05 14:11:34
14044
原创 python如何快速将项目代码制作成pip安装包并进行安装
1、在你的项目文件夹的工作目录下,新建setup.py文件,然后在里面添加如下内容:#! /usr/bin/env python # -*- coding: utf-8 -*_ # Author: ***<***gmail.com> from distutils.core import setup import setuptoolssetup( name='xxx...
2019-05-04 16:42:30
6383
7
原创 postman发起的post请求和requests.request()的区别
postman软件在你发起post请求时,会自动帮你加上header的信息,所以你能够正常访问到服务器的数据信息,但是当你使用requests.request()请求时,是没有header,这时候会报500错误,或者其他错误(主要取决于服务器的报错信息),所以,当我们在代码中进行post请求数据时,一定不要忘记加入header信息。如下:headers = {'Content-type': '...
2019-04-26 14:48:45
3336
3
原创 如何解决error: failed to push some refs to ‘git@github.com:......git pull冲突问题
造成这个冲突的原因是:远程仓库的该分支有修改,但你并没有pull到本地,并且你也在本地有修改,这样就会出现系统不知道该以远程仓库为主还是本地仓库为主,所以冲突产生了。错误如下,那么怎么解决呢?方法一:1、git stash 将本地修改保存至缓存区2、git pull3、git stash pop # 将本地修改与远程修改合并4、此时需要手动解决冲突,如下所示,删除标记线,然后确定哪...
2019-04-21 02:25:24
29176
原创 pull指定远程分支的方法
如果你不想通过git clone 远程仓库地址 --branch 分支名去下拉远程指定分支的文件,可以通过以下方法实现:1、在本地创建和远程仓库相同分支,这里以dev分支为例git checkout -b dev # 创建本地dev分支,并切换至dev分支2、这时还不能git pull,需要先执行:git branch --set-upstream-to=or...
2019-04-21 00:29:13
3572
原创 在本地配置多个远程git账号
如果你想在一台电脑上同时配置两个git账号,比如gitlab账号123@126.com和github的456@126.com那么应该如何做呢?###进入git bash,执行 ssh-keygen -t rsa -C 【123@126.com】出现以上提示表示需要输入你的rsa文件名,这里我们命名为:id_rsa,输入之后,回车回车。。。###依照上面的方法生成456@126.com的密...
2019-04-21 00:10:23
1738
原创 UnicodeEncodeError: 'ascii' codec can't encode characters in position 0-2: ordinal not i
关于在linux终端出现UnicodeEncodeError: ‘ascii’ codec can’t encode characters in position 0-2: ordinal not in range(128) 报错的解决方案原因:这是因为终端不支持中文显示导致的。解决:(1)设置环境变量LANG修改~/.bash_profile文件,执行export LANG=“en_U...
2019-04-12 16:28:21
2955
3
原创 git下拉不同分支的方法
**下拉master分支git clone下拉指定分支git clone 地址 --branch 分支名指定分支提交如果本地没有远程分支,需新建相同分支 git branch 分支名 git branch -f 分支名 (强行创建分支)切换分支 git checkout 分支名查看分支 git branch查看提交log git log --pret...
2019-04-12 12:01:37
4906
原创 tmux翻页,翻屏
关于tmux的翻屏,翻页,很多博客没说很清楚,下面就详细介绍下进入tmux翻屏模式先按 ctrl +b,松开,然后再按 [实现上下翻页进入翻屏模式后,PgUp PgDn 实现上下翻页退出qps:很多博客直接写ctrl + b + [,很多人会以为是同时按三个键,但是这样是不行的。简单介绍下tmux的其他功能创建tmuxtmux new -s 名字进入已创建的tmuxtm...
2019-04-12 12:01:13
46640
4
权重衰减(weight decay)与学习率衰减(learning rate decay).docx
2021-09-16
Axiomatic Attribution for Deep Networks 论文解析.docx
2021-09-16
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人