自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

mathor的博客

更多文章请移步我的blog https://wmathor.com

  • 博客(211)
  • 资源 (7)
  • 论坛 (2)
  • 收藏
  • 关注

原创 长江雨课堂习题答案获取

事先声明本教程仅在长江雨课堂试验没问题,雨课堂应该同理,只需要把下面所有的URL由changjiang.yuketang.cn改为yuketang.cn本教程仅适用于课堂习题,不适用课后测验或考试本人仅本着学术研究的态度,请勿用于违法内容本教程并不是万能的,需要有一个人勇于牺牲获取课程ID如下图所示,进入长江雨课堂后,点击一个课程详情页,地址栏中最后面的一串数字就是该课程的ID查看课程详情具体来说,通过长江雨课堂提供的api接口https://changjiang.yuketang.c

2020-12-04 12:57:08 1603 1

原创 Longformer详解

IntroductionLongformer是一种可高效处理长文本的模型,出自AllenAI 2020年4月10日。目前已经开源,而且可以通过huggingface快速使用传统Transformer-based模型在处理长文本时存在一些问题,因为它们均采用"我全都要看"型的attention机制,即每一个token都要与其他所有token进行交互,无论是空间还是时间复杂度都高达O(n2)O(n^2)O(n2)。为了解决这个问题,之前有些工作是将长文本切分为若干个较短的Text Segment,然后逐个处

2020-11-13 15:24:00 654 2

原创 BERT and its family

大名鼎鼎的芝麻街预训练语言模型的缩写大多是芝麻街的人物。这显然是起名艺术大师们的有意为之。他们甚至都可以抛弃用首字母缩写的原则去硬凑出芝麻街人名上图所示的模型(除了Big Bird,因为没有这个模型)他们之间都有一些共同点,就是能通过一个句子的上下文来给一个词进行Embedding,而能达到这种目的的网络架构有很多,例如LSTM,Self-attention layers,Tree-based model(注重文法,一般表现不佳,只有在文法结构非常严谨的情况下表现好)等等Smaller Model.

2020-11-13 15:22:49 212

原创 三种Cross-lingual模型 (XLM, XLM-R, mBART)详解

本文将详述三种Cross-lingual模型,按照其在Arxiv上发表论文的时间,分别是XLM(2019/1/22)、XLM-R(2019/11/5)、mBART(2020/1/22),有意思的是这三篇文章均出自FaceBook,他们是不是对跨语言模型有什么执念?XLM (Cross-lingual Language Model Pretraining)尽管原有的BERT模型可以在上百种语言上进行预训练,但是语言之间的信息并不是互通的,不同的语言模型之间没有共享知识。Facebook的XLM模型克服了信

2020-11-13 15:18:29 940

原创 BART详解

一切都得从Transformer说起。Transformer左半边为Encoder,右半边为Decoder。我们将Encoder输入的句子称为source,Decoder输入的句子称为target[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-RE29V0aK-1605251758733)(https://s1.ax1x.com/2020/04/25/JyCdy9.png#shadow)]Encoder负责将source进行self-attention并获得句子中每个词的r

2020-11-13 15:16:22 951

原创 RoBERTa概述

RoBERTa相较于BERT最大的改进有三点:动态Masking取消NSP (Next Sentence predict) 任务扩大Batch Size静态Masking vs 动态Masking静态Maksing:在数据预处理期间Mask矩阵就已生成好,每个样本只会进行一次随机Mask,每个Epoch都是相同的修改版静态Maksing:在预处理的时候将数据拷贝10份,每一份拷贝都采用不同的Mask,也就说,同样的一句话有10种不同的mask方式,然后每份数据都训练N/10个Epoch动

2020-11-13 15:15:48 358

原创 Tacotron2 Inference教程

目录结构本教程实验环境为Google Colab,文件目录结构如下ALL└── tacotron2 ├── audio_processing.py ├── checkpoint_269000 ├── data_utils.py ├── demo.wav ├── distributed.py ├── Dockerfile ├── filelists │ ├── ljs_audio_text_test_filelist.txt │

2020-10-24 16:37:04 380

原创 StructBERT详解

StructBERTStructBERT: Incorporating Language Structures into Pre-training for Deep Language UnderstandingStructBERT是阿里对的一个BERT改进,模型取得了很好的效果,目前在GLUE排行榜上排名第二首先我们看下面一个英文和中文两句话i tinhk yuo undresatnd this sentneces.研表究明,汉字序顺并不定一影阅响读。比如当你看完这句话后,才发这现里的字全是都

2020-10-19 18:25:08 175

原创 Sentence-Transformer的使用及fine-tune教程

简述Sentence-Transformer官方文档写的很详细,里面有各种你可能会用到的示例代码,并且都有比较详细的说明,如果有什么问题,应该先去看官方文档本文主要从两种情况来介绍如何使用Sentence-Transformer,一种是直接使用,另一种是在自己的数据集上fine-tune首先,无论何种场景,您都应该先安装以下两个库pip install -U sentence-transformerspip install -U transformers直接使用Sentence-Transf

2020-10-19 18:24:34 2250 4

原创 Sentence-BERT详解

简述BERT和RoBERTa在文本语义相似度(Semantic Textual Similarity)等句子对的回归任务上,已经达到了SOTA的结果。但是,它们都需要把两个句子同时送入网络,这样会导致巨大的计算开销:从10000个句子中找出最相似的句子对,大概需要5000万(C100002=49,995,000C_{10000}^2=49,995,000C100002​=49,995,000)个推理计算,在V100GPU上耗时约65个小时。这种结构使得BERT不适合语义相似度搜索,同样也不适合无监督任务,

2020-10-13 18:03:46 1779 4

原创 Siamese Network & Triplet NetWork

Siamese Network(孪生网络)简单来说,孪生网络就是共享参数的两个神经网络在孪生网络中,我们把一张图片X1X_1X1​作为输入,得到该图片的编码GW(X1)G_W(X_1)GW​(X1​)。然后,我们在不对网络参数进行任何更新的情况下,输入另一张图片X2X_2X2​,并得到改图片的编码GW(X2)G_W(X_2)GW​(X2​)。由于相似的图片应该具有相似的特征(编码),利用这一点,我们就可以比较并判断两张图片的相似性孪生网络的损失函数传统的Siamese Network使用Contr

2020-10-13 18:02:39 511

原创 英文文本关系抽取(fine-tune Huggingface XLNet)

本文主要是基于英文文本关系抽取比赛,讲解如何fine-tune Huggingface的预训练模型,同时可以看作是关系抽取的一个简单案例数据预览训练数据包含两列。第一列是文本,其中<e1></e1>包起来的是第一个实体,<e2></e2>包起来的是第二个实体。第二列是关系,除了"Other"这个关系以外,其它关系都有先后顺序,比方说第一个样本:“伤害是由邀请制度造成的”,其中"harm"是因果关系中的果,而"system"是因,所以最终label是"Cau

2020-09-28 11:37:06 720 2

原创 BERT Word Embeddings Tutorial

本文译自BERT Word Emebddings Tutorial,我将其中部分内容进行了精简。转载请注明出处1. Loading Pre-Trained BERT通过Hugging Face安装BERT的PyTorch接口,该库还包含其它预训练语言模型的接口,如OpenAI的GPT和GPT-2如果您在Google Colab上运行此代码,每次重新连接时都必须安装此库!pip install transformersBERT是由Google发布的预训练模型,该模型使用Wikipedia和Book

2020-09-28 11:36:00 221

原创 百度语音合成模型Deep Voice3

INTRODUCTIONDeep Voice3是由百度提出的一个全新的全卷积TTS架构。百度的主要工作分为如下五个方面:提出了一个全卷积的 character-to-spectrogram 架构,它能并行计算,并且比使用循环单元的架构快Deep Voice3训练非常快,并且可以扩展到LibriSpeech语音数据集,该数据集包含来自2484个说话人的820小时音频数据可以产生单调的注意力行为 (monotonic attention behavior),避免了seq2seq语音合成中常见的错误比

2020-09-28 11:31:15 670

原创 ALBERT详解

BERT的问题BERT 发布后,在排行榜上产生了许多 NLP 任务的最新成果。但是,模型非常大,导致了一些问题。"ALBERT"论文将这些问题分为两类:内存限制考虑一个包含一个输入节点,两个隐藏节点和一个输出节点的简单神经网络。即使是这样一个简单的神经网络,由于每个节点有权重和偏差,因此总共有7个参数需要学习BERT-large是一个复杂的模型,它有24个隐藏层,在前馈网络和多头注意力机制中有很多节点,总共有3.4亿个参数,如果想要从零开始训练,需要花费大量的计算资源模型退化最近在NLP领域

2020-09-28 11:30:28 547

原创 Tacotron2 模型详解

1 概述Tacotron2是由Google Brain在2017年提出来的一个End-to-End语音合成框架。模型从下到上可以看作由两部分组成:声谱预测网络:一个Encoder-Attention-Decoder网络,用于将输入的字符序列预测为梅尔频谱的帧序列声码器(vocoder):一个WaveNet的修订版,用于将预测的梅尔频谱帧序列产生时域波形2 编码器Encoder的输入是多个句子,每个句子的基本单位是character,例如英文"hello world"就会被拆成"h e.

2020-09-28 11:29:19 855

原创 Tacotron2 论文阅读

论文下载ABSTRACT这篇论文描述了Tacotron 2, 一个直接从文本合成语音的神经网络架构。系统由两部分构成,一个循环seq2seq结构的特征预测网络,把字符向量映射为梅尔声谱图,后面再接一个WaveNet模型的修订版,把梅尔声谱图合成为时域波形。我们的模型得到了4.53的平均意见得分(MOS),专业录制语音的MOS得分是4.58。为了验证模型设计,我们对系统的关键组件作了剥离实验研究,并且评估了使用梅尔频谱替代语言学、音长和F0特征作为WaveNet输入带来的不同影响。我们进一步展示了使用紧

2020-09-28 11:27:27 174

原创 Tacotron2 运行笔记

项目地址NVIDIA/tacotron2,先clone下来git clone https://github.com/NVIDIA/tacotron2配置环境我的实验环境(ubuntu):python==3.6.10numpy==1.17.0matplotlib==2.1.0scipy==1.0.0numba==0.48.0librosa==0.6.0tensorflow==1.15.2pytorch==1.1.0torchvision==0.3.0inflect=0.2.5Un

2020-09-28 11:25:59 336

原创 XLNet 详解(看不懂你来骂我)

B站视频讲解“干翻芝麻街”2018 年,谷歌发布了基于双向 Transformer 的大规模预训练语言模型BERT,刷新了 11 项 NLP 任务的最优性能记录,为 NLP 领域带来了极大的惊喜。很快,BERT 就在圈内普及开来,也陆续出现了很多与它相关的新工作BERT 带来的震撼还未平息,来自卡耐基梅隆大学与谷歌大脑的研究者又提出新型预训练语言模型 XLNet,在 SQuAD、GLUE、RACE 等 20 个任务上全面超越 BERT作者表示,BERT 这样基于去噪自编码器的预训练模型可以很好地建模

2020-09-28 11:25:15 664 3

原创 WAVENET论文阅读

论文下载谷歌DeepMind2016年的深度生成模型 WaveNet 将机器语音合成的表现与人类之间水平的差距至少缩减了 50%ABSTRACT这篇论文提出了WaveNet,一个生成原始音频波形的深度神经网络。这是一个完全的概率自回归模型,它基于之前已经生成的所有样本,来预测当前音频样本的概率分布;不过,我们将会展示它可以在每秒数万采样率的音频数据上高效地进行训练。将其应用到语音合成,它获得了当前业界最佳的性能,不管是英语还是中文普通话,相比之前最好的参数式和拼接式系统,人类听众评价其在自然度上有大

2020-09-28 11:23:26 229

原创 Tacotron论文阅读

论文下载Tacotron是谷歌于2017年提出的端到端语音合成系统,该模型可接收字符的输入,输出相应的原始频谱图,然后将其提供给 Griffin-Lim 重建算法直接生成语音ABSTARCT一个文本转语音的合成系统通常包含多阶段处理,例如文本分析前端,声学模型和声音合成模块。构建这些组件常常需要大量的领域专业知识,而且设计选择也可能很脆弱。在这篇论文里,我们提出了Tacotron,一种端到端的生成式文本转语音模型,可以直接从字符合成语音。在<文本,声音>配对数据集上,该模型可以完全从随机

2020-09-28 11:20:40 366

原创 BERT 的 PyTorch 实现(超详细)

B站视频讲解本文主要介绍一下如何使用 PyTorch 复现BERT。请先花上 10 分钟阅读我的这篇文章 BERT详解(附带ELMo、GPT介绍),再来看本文,方能达到醍醐灌顶,事半功倍的效果准备数据集这里我并没有用什么大型的数据集,而是手动输入了两个人的对话,主要是为了降低代码阅读难度,我希望读者能更关注模型实现的部分''' code by Tae Hwan Jung(Jeff Jung) @graykode, modify by wmathor Reference : https://g

2020-09-28 10:55:24 4164 8

原创 BERT详解(附带ELMo、GPT介绍)

首先我会详细阐述BERT原理,然后简单介绍一下ELMO以及GPTBERT详解BERT全称为Bidirectional Encoder Representation from Transformer,是Google以无监督的方式利用大量无标注文本「炼成」的语言模型,其架构为Transformer中的Encoder(BERT=Encoder of Transformer)我在Transformer详解中已经详细的解释了所有Transformer的相关概念,这里就不再赘述以往为了解决不同的NLP任务,我们

2020-09-28 10:54:10 571

原创 Transformer的PyTorch实现(超详细)

文本主要介绍一下如何使用 PyTorch 复现 Transformer,实现简单的机器翻译任务。请先花上 15 分钟阅读我的这篇文章 Transformer详解,再来看文本,方能达到醍醐灌顶,事半功倍的效果数据预处理这里我并没有用什么大型的数据集,而是手动输入了两对德语→英语的句子,还有每个字的索引也是我手动硬编码上去的,主要是为了降低代码阅读难度,我希望读者能更关注模型实现的部分# S: Symbol that shows starting of decoding input# E: Symbol

2020-07-15 09:09:45 9265 15

原创 Transformer详解(看不懂你来骂我)

Transformer是谷歌大脑在2017年底发表的论文attention is all you need中所提出的seq2seq模型。现在已经取得了大范围的应用和扩展,而BERT就是从Transformer中衍生出来的预训练语言模型这篇文章分为以下几个部分 Transformer直观认识 Positional Encoding Self Attention Mechanism 残差连接和Layer Normalization Transformer Encoder整体结构 Tr

2020-07-15 09:08:20 992 5

原创 Beyond Accuracy:Behavioral Testing of NLP Models with Checklist 论文阅读

本文主要介绍以及翻译一篇ACL2020 Best Paper Beyond Accuracy:Behavioral Testing of NLP Models with Checklist[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-vSTpmOgv-1594364118083)(https://i.loli.net/2020/07/09/ySTmkzONFlG9xIZ.png#shadow)]Abstract[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来

2020-07-10 14:55:50 1106

原创 Seq2Seq(Attention)的PyTorch实现(超级详细)

文本主要介绍一下如何使用PyTorch复现Seq2Seq(with Attention),实现简单的机器翻译任务,请先阅读论文Neural Machine Translation by Jointly Learning to Align and Translate,之后花上15分钟阅读我的这两篇文章Seq2Seq 与注意力机制,图解Attention,最后再来看文本,方能达到醍醐灌顶,事半功倍的效果数据预处理数据预处理的代码其实就是调用各种API,我不希望读者被这些不太重要的部分分散了注意力,因此这里我

2020-07-02 15:35:26 2513 5

原创 随时获取数据流的中位数

题目有一个源源不断往外吐出整数的数据流,假设你有足够的空间来保存吐出的数。请设计一个方法,这个方法可以随时取出之前吐出所有数的中位数要求如果已经保存了吐出的N个数,那么任意时刻将一个新数加入的过程,其时间复杂度不超过O(logN)取得中位数的过程,时间复杂度为O(1)思路建立一个大根堆,一个小根堆。每次来的一个数,和大根堆的堆顶比较,如果小于大根堆的堆顶,就加入大根堆;如果大于大根堆的堆顶,就加入小根堆同时还要满足这两个堆中的元素个数之差不能超过2(即<2)。例如大根堆中的元素现在有

2020-07-02 09:15:00 261

原创 判断一棵树是否为完全二叉树

题目有一棵二叉树,给定它的根节点root,请设计一个算法判断它是否是完全二叉树分析一边对二叉树进行BFS将每一个节点都加入到队列,一边执行下面的判断当前节点有右孩子,但没有左孩子,直接返回false当前节点有左孩子没右孩子,那么接下来遇到的所有节点必须是叶子节点例如下图所示的情况,当遍历到红色节点后,由于其只有左孩子,没有右孩子,因此实际上认为当前开启了一个状态,这个状态的开启,使得接下来的所有节点必须只能是叶子节点,如果不是,则该二叉树不是完全二叉树。例如,接下来访问到绿色节点,发现该节点

2020-07-02 09:14:25 997 1

原创 TextCNN的PyTorch实现

本文主要介绍一篇将CNN应用到NLP领域的一篇论文 Convolutional Neural Networks for Sentence Classification,然后给出 PyTorch 实现论文比较短,总体流程也不复杂,最主要的是下面这张图,只要理解了这张图,就知道如何写代码了。如果你不了解CNN,请先看我的这篇文章CS231n笔记:通俗理解CNN下图的feature map是将一句话中的各个词通过WordEmbedding得到的,feature map的宽为embedding的维度,长为一句

2020-07-02 09:13:10 693 2

原创 TextRNN的PyTorch实现

本文介绍一下如何使用PyTorch复现TextRNN,实现预测一句话的下一个词参考这篇论文Finding Structure in Time(1990),如果你对RNN有一定的了解,实际上不用看,仔细看我代码如何实现即可。如果你对RNN不太了解,请仔细阅读我这篇文章RNN Layer,结合PyTorch讲的很详细现在问题的背景是,我有n句话,每句话都由且仅由3个单词组成。我要做的是,将每句话的前两个单词作为输入,最后一词作为输出,训练一个RNN模型导库''' code by Tae Hwan J

2020-07-02 09:12:33 441

原创 BiLSTM的PyTorch应用

本文介绍一下如何使用BiLSTM(基于PyTorch)解决一个实际问题,实现给定一个长句子预测下一个单词如果不了解LSTM的同学请先看我的这两篇文章LSTM、PyTorch中的LSTM。下面直接开始代码讲解导库''' code by Tae Hwan Jung(Jeff Jung) @graykode, modify by wmathor'''import torchimport numpy as npimport torch.nn as nnimport torch.optim as

2020-07-02 09:11:58 1936 2

原创 Seq2Seq的PyTorch实现

本文介绍一下如何使用 PyTorch 复现 Seq2Seq,实现简单的机器翻译应用,请先简单阅读论文Learning Phrase Representations using RNN Encoder–Decoder for Statistical Machine Translation(2014),了解清楚Seq2Seq结构是什么样的,之后再阅读本篇文章,可达到事半功倍的效果我看了很多Seq2Seq网络结构图,感觉PyTorch官方提供的这个图是最好理解的首先,从上面的图可以很明显的看出,Seq2Se

2020-07-02 09:11:11 967 1

原创 图解Attention

关于Attention的公式推导,我在这篇文章讲过了,本篇文章主要以图示的方式进行讲解下图是一个Encoder架构,s0s_0s0​从值上来说与hmh_mhm​是相等的,只不过这里换了个名字首先我们需要将s0s_0s0​和所有的hi (i=1,...,m)h_i\ (i=1,...,m)hi​ (i=1,...,m)计算一个"相关性",比方说计算s0s_0s0​和h1h_1h1​之间的相关性计算得α1=align(h1,s0)\alpha_1=align(h_1, s_0)α1​=a

2020-07-02 09:08:59 145

原创 PyTorch实现Word2Vec

本文主要是使用PyTorch复现word2vec论文PyTorch中的nn.Embedding实现关键是nn.Embedding()这个API,首先看一下它的参数说明[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-uWyBPAc4-1587546622043)(https://s1.ax1x.com/2020/04/12/GOaDhT.png#shadow)]...

2020-04-22 17:10:49 1222 3

原创 营销号视频生成器(Python)
原力计划

网上最近很火的段子是各种营销号的文案,比方说下面的段子核桃核不能吞下去是怎么回事呢?核桃核相信大家都很熟悉,但是核桃核不能吞下去是怎么回事呢,下面就让小编带大家一起了解吧。  核桃核不能吞下去,其实就是核桃核太大了,吞下去容易噎着,大家可能会很惊讶核桃核怎么会不能吞下去呢?但事实就是这样,小编也感到非常惊讶。  这就是关于核桃核不能吞下去的事情了,大家有什么想法呢,欢迎在评论区告诉小编一起...

2020-04-19 17:50:34 9824 18

原创 微博立场检测 60分Baseline
原力计划

AI研习社最近举办了一个比赛——微博立场检测,实际上就是一个NLP文本分类的比赛Baseline—FastText我的Baseline方法用的是pkuseg分词+FastText,最好成绩是60,下面是我几次提交的得分截图Load Data & Preprocess先import之后要用到的库import pkusegimport randomimport pandas ...

2020-03-16 10:14:59 1382

原创 2020美赛C题思路(内附完整代码)
原力计划

这里记录的是我第三次(最后一次)美赛的参赛记录,第二次的文章在这里,第一次的文章在这里这篇文章写于2020年3月10日上午6点55,距离我提交论文仅过去了25分钟,强忍着睡意,趁着现在还记得一些思路,赶紧做下记录,免得睡一觉起来忘了赛前赛前什么都没准备,本来这次就准备划水的,因为就算拿了O奖,也是4月底的事了,到时候研究生复试什么的早就结束了3月6日本来早上定的6点的闹钟,结果睡过了,睡...

2020-03-11 14:00:58 12970 13

原创 TF-IDF

1.What is TF-IDFTF-IDF(Term Frequency-Inverse Document Frequency,词频-逆文件频率)TF-IDF是一种统计方法,用来评估一个词对一个文件集或一个语料库中的其中一份文件的重要程度。该词的重要性随着它在文件中出现的次数成正比增加,但同时会随着它在语料库中出现的频率成反比下降上述那段话的总结就是,一个词在一篇文章中出现次数越多,但...

2020-02-23 11:58:01 1504

原创 AutoEncoder的PyTorch实现

之前的文章叙述了AutoEncoder的原理,这篇文章主要侧重于用PyTorch实现AutoEncoderAutoEncoder其实AutoEncoder就是非常简单的DNN。在encoder中神经元随着层数的增加逐渐变少,也就是降维的过程。而在decoder中神经元随着层数的增加逐渐变多,也就是升维的过程class AE(nn.Module): def __init__(self)...

2020-02-23 11:57:09 2479 7

基于MFC的云手机销售系统

有源码,下载之后将debug文件夹里的txt文本放至D盘跟目录下即可开始运行,百分百可运行,学生课程设计,毕业设计不二之选

2025-05-07

DDOS 天降激光炮图像界面版

天降激光炮DDOS,有界面

2018-10-29

MFC制作的计算器

使用MFC制作一个个人简易计算器,新手刚入门的都能理解,运行直接使用

2017-12-02

Java实现算术表达式词法分析程序

Java实现算术表达式词法分析程序,更多详情可以查看博客wmathor.com

2018-11-10

2017年第八届蓝桥杯决赛真题

Java,C/C++,ABC组都有,绝对全,2积分很便宜了,快下吧

2018-04-21

Java实现编译原理DFA图转换

给定算术表达式的DFA图,利用Java语言构建Trie树,实现对输入文法的判断

2018-11-10

空空如也

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

TA关注的人 TA的粉丝

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