NLP
iSikai
这个作者很懒,什么都没留下…
展开
-
Pycharm远程调试服务器
最近每天调transformer,自己的显卡承受不了,需要链接远程服务器,但是写好再传到服务器比较麻烦,也没办法装图形化IDE。幸亏Pycharm提供了非常优秀的远程调试方法,和在本机操作没有任何区别。设置远程python解释器我们以新建项目为例,当它需求一个python解释器时,选择existing interpreter,点击旁边的…选择ssh interpreter,填写你的hos...原创 2020-04-21 15:59:42 · 599 阅读 · 1 评论 -
GPT/BERT训练:Creating MTGP constants failed
这个bug有两种原因。一是在pytorch早期版本中,使用了超过512的序列长度,见:训练bert中的一些坑。二是config文件和model不相符,有可能是你添加了special token,但是没有添加到model的embedding_size里。在huggingface系预训练model中,使用这一的句子添加special token是安全的。def add_special_toke...原创 2020-04-01 19:39:21 · 846 阅读 · 0 评论 -
windows pycharm代码迁移到Linux服务器
前言最近实验吃紧,在用自己电脑训练的同时,也需要用机房电脑训练baseline,所以需要将运行在Windows下pycharm的代码迁移到Linux,主要需要做这两步:构建层次关系将\\改成/构建层次关系pycharm会自动修改python路径,建立层次关系/ex /data data.py /train main.py在pycharm中,可以在项目的任何地方(例如...原创 2020-03-17 23:37:03 · 1614 阅读 · 0 评论 -
Windows下安装使用Spacy英文库en_core_web_md,解决Warning: no model found for 'en_core_web_md'
spacy是一个强大的NLP数据处理工具,它使用二步的安装步骤:先安装spacy,再安装对应的语言包,但是第二步默认下载速度慢,手动安装常出问题。在Windows下安装,可以先使用conda安装spacy,注意不要像一些教程那样加上conda-forge的参数,这样会将你的下载源改成coda-forge,从而覆盖掉清华源。conda install spacy接下来是安装英文包,我是在这个...原创 2020-03-04 18:33:22 · 4210 阅读 · 5 评论 -
深度理解tf.gather和tf.gather_nd的用法
tf.gather和tf.gather_nd都是从tensor中取出index标注的部分,不同之处在于,gather一般只使用一个index来标注,而gather_nd可以使用多个index。例如:如何直观理解gather_nd的indices呢?在上例中,直观的理解就是,取出params中位于[0,0]和[1,1]处的tensor,放入index中对应的位置。换句话说,除去tenso...原创 2020-02-28 17:15:55 · 12987 阅读 · 1 评论 -
Tensorflow调试指南:tf.Print
TL;DRtf.Print(input,data)a=tf.Print(a,["value",a,"shape",tf.shape(a)])tensor a可以定义在代码的任意一个位置,只要在session.run时节点a有数据流过(否则你也不会想要debug它),data就会被打印到终端。Codeimport tensorflow as tfdef _test_(): w...原创 2020-02-28 11:39:39 · 952 阅读 · 0 评论 -
GPT-2代码解读[3]:Block
GPT-2代码解读[3]:BlockOverview模型由12个基本块构成,每一块由三部分构成,我们已经考虑过和Embedding与Attention相关的部分,现在考虑最后一部分:Add&MLP。记Attention层的输出为a,块输入为x。Add&MLP层的信息流动如下:x=x+ax=x+ax=x+am=mlp(x)m=mlp(x)m=mlp(x)x=x+mx=...原创 2020-02-21 17:22:38 · 1165 阅读 · 0 评论 -
GPT-2代码解读[1]:Overview和Embedding
GPT-2代码解读[1]:Overview和EmbeddingAbstract随着Transformer结构给NLU和NLG任务带来的巨大进步,GPT-2也成为当前(2020)年顶尖生成模型的泛型,研究其代码对于理解Transformer大有裨益。可惜的是,OpenAI原始Code基于tensorflow1.x,不熟悉tf的同学可能无从下手,这主要是由于陌生环境1导致的。本文的意愿是帮助那些...原创 2020-02-21 17:21:54 · 3715 阅读 · 1 评论 -
GPT-2代码解读[2]:Attention
GPT-2代码解读[2]:AttentionOverviewAttention模块的结构如上图所示,只有Linear部分是可训练的,第一次Linear将嵌入向量转换为Q,K,V1,第二次Linear将Attention的结果重新转换为嵌入向量,作为下一层的输入。从信息的角度来说,嵌入向量首先被转换2为三种信息,即Query,Key和Value。信息的本性由用法(去向)决定,而非由来源决定...原创 2020-02-21 17:19:44 · 1504 阅读 · 1 评论 -
Python List,Numpy和Tensorflow的加法运算符
a + b 对于Python List, Numpy 和Tensorflow的表现不同,这有时会导致一些困惑。List:拼接Numpy:element-wise plus要求a与b的size相同或者相容。Tensorflow:element-wiseList并不一定盛放数字,所以将+定义为element-wise plus是没意义的。...原创 2020-02-19 09:20:45 · 419 阅读 · 0 评论 -
[AllenNLP框架下工程化的AI实验01]以语言模型为例
摘要搭建语言模型,说明AllenNLP的疑点和潜规则。核心概念DataReaderVocabulary &NamespaceDataIteratorModelTrainerPredictor原创 2020-01-16 13:06:26 · 483 阅读 · 1 评论 -
最好的AI实验方式?AllenNLP介绍与评价
介绍AllenNLP是由AllenAI研究所提出的NLP框架,与ELMO师出同门。据项目领导人Matt Gardner所说,该框架是在问题“NLP实验的最优实践方式”下提出的。在EMNLP2018上,AllenAI对该框架做了介绍:演讲ppt。ppt讲述该框架的指导原则,也是NLP实验的指导原则,受益匪浅。我将这个ppt上传到百度网盘(提取码:ywm2),方便github速度慢的同学下载。...原创 2020-01-14 15:49:27 · 931 阅读 · 0 评论 -
从零开始搭建NLP Linux开发环境:Ubuntu18.04双系统,中文输入法,pycharm,anaconda,nvida驱动,cuda,cudnn,pytorch,allennlp
写在前面2020年配置深度学习开发环境,除了有几个坑之外,安装过程是简单的,网上繁琐的方法,反而有可能是过时甚至危险的。这篇博客的目的是结合几个精华博客,说明原理与坑点,帮助对操作系统不太熟悉的小伙伴们顺利安装。安装Win10+Ubuntu双系统电脑是华硕飞行堡垒,1060,1T机械硬盘。根据https://blog.csdn.net/github_37603222/article/de...原创 2020-01-12 20:18:06 · 858 阅读 · 0 评论 -
[Pytorch官方NLP实验解惑04]基于seq2seq和Attention机制的法英翻译器
这篇博客是对https://pytorch.org/tutorials/intermediate/seq2seq_translation_tutorial.html#sphx-glr-intermediate-seq2seq-translation-tutorial-py中一些问题的解惑,可以配合使用,有其他不理解的也欢迎讨论。原实验运行在老版本的python和torch上,在当前版本已经做不到...原创 2020-01-05 14:42:56 · 471 阅读 · 0 评论 -
[Pytorch官方NLP实验解惑03]基于lstm的seq2seq单词标注器
序列到序列(seq2seq)是nlp任务中重要的一类,它和其他任务的根本区别在于它以序列作为处理对象,而序列由彼此独立又相互联系的单词组成,为了处理这种关系,需要在层与层之间记忆和传递状态,以表达单词之间的联系,深度学习使用rnn及rnn的变种(lstm,gru)解决这一问题。本实验实现一个单词标注器,即单词序列->词性序列。 ("The dog ate the apple".split...原创 2019-12-30 22:15:11 · 549 阅读 · 0 评论 -
[Pytorch官方NLP实验解惑02]NGram语言模型
该实验不仅介绍了语言模型,还引出了word embedding,前者在nlp中称为下游任务,后者称为预处理,预处理+下游任务的二阶段模型是现在nlp实验的常用框架。语言模型语言模型在nlp中一般指一个句子在自然语言中出现的概率,本实验的目的是训练一个根据上文预测单词的语言模型,即求P(Wi∣Wi−N...Wi−1)P(Wi|W_{i-N}...W{i-1})P(Wi∣Wi−N...Wi−1)...原创 2019-12-29 17:13:30 · 473 阅读 · 0 评论 -
[Pytorch官方NLP实验解惑01]词袋分类器
Pytorch官方实验的食用方法pytorch官网上关于NLP的实验有两类,https://pytorch.org/tutorials/index.html#text和https://pytorch.org/tutorials/beginner/deep_learning_nlp_tutorial.html,两份教程的风格比较类似,倾向于快速原型,不需要下载,预处理数据集,而是通过几个简单的样例...原创 2019-12-29 16:28:30 · 465 阅读 · 0 评论