4 数学家是我理想

尚未进行身份认证

我要认证

https://wmathor.com

等级
TA的排名 1w+

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

Transformer

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

2020-07-02 09:15:46

随时获取数据流的中位数

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

2020-07-02 09:15:00

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

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

2020-07-02 09:14:25

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

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

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

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

图解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

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

营销号视频生成器(Python)

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

2020-04-19 17:50:34

微博立场检测 60分Baseline

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

2020-03-16 10:14:59

2020美赛C题思路(内附完整代码)

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

2020-03-11 14:00:58

TF-IDF

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

2020-02-23 11:58:01

AutoEncoder的PyTorch实现

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

2020-02-23 11:57:09

AutoEncoder

自编码AutoEncoder是一种无监督学习的算法,他利用反向传播算法,让目标值等于输入值。什么意思呢,下面举个例子有一个神经网络,它在做的事情是,输入一张图片,通过一个Encoder神经网络,输出一个比较"浓缩的"feature map。之后将这个feature map通过一个Decoder网络,结果又将这张图片还原回去了你也可以这么理解,整个Encoder+Decoder是一个神经网络,中...

2020-02-23 11:48:44

Transfer Learning

Pokemon Dataset通过网络上收集宝可梦的图片,制作图像分类数据集。我收集了5种宝可梦,分别是皮卡丘,超梦,杰尼龟,小火龙,妙蛙种子数据集链接:https://pan.baidu.com/s/1Kept7FF88lb8TqPZMD_Yxw提取码:1sdd一共有1168张宝可梦的图片,其中皮卡丘234张,超梦239张,杰尼龟223张,小火龙238张,妙蛙种子234张每个目录由神奇宝...

2020-02-09 23:38:41

Python爬取肺炎疫情实时信息

爬取肺炎疫情实时信息,打包成了exe,详细代码以及说明全都放在github上了,欢迎issuehttps://github.com/mathors/2019-nCoV

2020-01-24 21:44:23

多层感知机模型讲解

具有多层输出的感知机如下图所示:图中节点上的符号表示的含义是:xk1x^1_kxk1​代表第1层上的第k个节点Ok1O^1_kOk1​同样代表第1层上的第k个节点若能求出∇E∇wjk\frac{\nabla E}{\nabla w_{jk}}∇wjk​∇E​的结果,便可知道所有的梯度信息Derivative首先我们定义E=12∑i(Oi1−ti)2E=\frac{1}{2}\sum...

2020-01-13 12:44:16

单层感知机模型讲解

下图为一个简单的单层感知机模型左侧为输入层,对于所有输入xxx,上标0表示第0层(即输入层),下标0~N表示有N+1个元素。对于中间的权重wijw_{ij}wij​,iii表示上一层的节点编号,jjj表示下一层的节点编号。后面紧跟着的分别是求和∑\sum∑,以及σ\sigmaσ函数。后面的E代表Error或者Loss,将输出值与t(target)进行对比接下来我们推导一下单层感知机梯度公式...

2020-01-13 12:37:28

查看更多

CSDN身份
  • 博客专家
勋章 我的勋章
  • GitHub
    GitHub
    绑定GitHub第三方账户获取
  • 签到新秀
    签到新秀
    累计签到获取,不积跬步,无以至千里,继续坚持!
  • 专栏达人
    专栏达人
    授予成功创建个人博客专栏的用户。专栏中添加五篇以上博文即可点亮!撰写博客专栏浓缩技术精华,专栏达人就是你!
  • 持之以恒
    持之以恒
    授予每个自然月内发布4篇或4篇以上原创或翻译IT博文的用户。不积跬步无以至千里,不积小流无以成江海,程序人生的精彩需要坚持不懈地积累!
  • 1024勋章
    1024勋章
    #1024程序员节#活动勋章,当日发布原创博客即可获得
  • 勤写标兵Lv4
    勤写标兵Lv4
    授予每个自然周发布9篇以上(包括9篇)原创IT博文的用户。本勋章将于次周周三上午根据用户上周的博文发布情况由系统自动颁发。
  • 原力探索
    原力探索
    参与《原力计划【第二季】——打卡挑战》的文章入选【每日精选】的博主将会获得此勋章。
  • 学习力
    学习力
    《原力计划【第二季】》第一期主题勋章 ,第一期活动已经结束啦,小伙伴们可以去参加第二期打卡挑战活动获取更多勋章哦。