深度学习
某热心知名群众
当程序员写出了一个对象
展开
-
命名实体识别工具——Stanza
简介Stanza is a collection of accurate and efficient tools for many human languages in one place. Starting from raw text to syntactic analysis and entity recognition, Stanza brings state-of-the-art NLP models to languages of your choosing.重点在于使用pytorch框架构建原创 2020-11-03 16:49:26 · 1989 阅读 · 0 评论 -
多标签损失函数问题
概述一个困扰了很久的问题,二分类、多分类、多标签的问题不详述了二分类多分类多标签损失函数Sigmoid和SoftmaxSoftmax函数得到的值是(0.3, 0.7),代表算法认为”是“的概率是0.7,”否“的概率是0.3,相加为1Sigmoid函数的输出假如是(0.4, 0.8),它们相加不为1,解释是Sigmoid认为输出第一位为1的概率是0.4,第一位不为1的概率是0.6(1-p),第二位为1的概率是0.8,第二位不为1的概率是0.2损失函数的实现PyTor转载 2020-09-09 17:19:20 · 996 阅读 · 0 评论 -
Pytorch模型(3)——图卷积网络
概述一种用在图结构数据上的网络结构图卷积与卷积的思想类似,卷积网络通过卷积核计算对应点的像素及周边点的像素的加权和;而图卷积是通过邻接矩阵计算对应节点的向量与周边节点的向量的加权和。要计算节点A的Embedding,我们有以下的两条想法:节点A的Embedding,是它的邻接节点B、C、D的Embedding传播的结果而节点B、C、D的Embedding,又是由它们各自的邻接节点的Embedding传播的结果。在构造两层的前提下Layer-0第0层即输入层,为每个节点的初始向量(根据原创 2020-07-07 21:17:23 · 3640 阅读 · 1 评论 -
Pytorch模型(2)——N-gram CNN
概述N-gram CNN在NLP中的应用主要是可以通过N-gram来捕捉局部语义信息,相比于加入了自注意力机制的模型而言,缺陷在于无法捕捉长距离的句子依赖,而且Transformer也可以并行去训练,我们可以将N-gram CNN+max pooling视为一种基于显著性注意力的语义EncoderModelclass CNNEncoder(nn.Module): """ 卷积提取Encoder """ def __init__(self, in_channels, o原创 2020-07-07 17:22:15 · 1049 阅读 · 0 评论 -
对英文句子中的单词进行词性标注
概述词性标注是许多NLP下游的前置任务,比如我需要一句话以动词进行分割,或者单纯想要将每个词的词性作为一项特征,此时便需要用到词性标注。词性标注的通常做法是基于一个标注语料库进行有监督的训练,通常不同领域的词性标注也不一样,我们介绍两种通用领域的词性标注方法方法NLTK最常用的词性标注方法,但是准确率相对较低text="I am good."result=nltk.pos_tag(nltk.word_tokenize(text))StanfordNLP安装首先安装stanfordcor原创 2020-07-07 15:15:57 · 1680 阅读 · 0 评论 -
Pytorch教程(4)——Batch Size & Learning Rate
两个问题深度学习中batch size的大小对训练过程的影响是什么样的?有些时候不可避免地要用超大batch,比如人脸识别,可能每个batch要有几万甚至几十万张人脸图像,训练过程中超大batch有什么优缺点,如何尽可能地避免超大batch带来的负面影响?两个问题的回答batch size的大小影响深度学习训练过程中的完成每个epoch所需的时间和每次迭代(iteration)之间梯度的平滑程度;对于一个大小为N的训练集,如果每个epoch中mini-batch的采样方法采用最常规的N转载 2020-06-18 20:32:20 · 9295 阅读 · 0 评论 -
Pytorch教程(3)——交叉熵CrossEntropyLoss()
交叉熵的计算公式输入的x的shape为(batch_size, num_class),一般求loss为对batch_size求均值,后进行backward计算公式这里class指的是某一类:不带权重loss(x,class)=−logexp(x[class])Σjexp(x[j])loss(x, class)=-log\frac{exp(x[class])}{\Sigma_{j}exp(x[j])}loss(x,class)=−logΣjexp(x[j])exp(x[class])带权重转载 2020-06-18 20:12:51 · 692 阅读 · 0 评论 -
Pytorch模型(1)——Dynamic RNN
RNN基本公式在普通神经网络中引入了隐藏状态ht=tanh(wihxt+bih+whhht−1+bhh)h_t=tanh(w_{ih}x_t+b_{ih}+w_{hh}h_{t-1}+b_{hh})ht=tanh(wihxt+bih+whhht−1+bhh)什么是Dynamic RNN静态RNN:由于静态RNN需要预先指定seq_len,所以所有数据都必须使用同一个seq_len,即每一个batch的seq_len是一致的动态RNN:由于利用循环次数实现了seq_len的作用,所以不原创 2020-06-08 21:51:51 · 1679 阅读 · 0 评论 -
Pytorch教程(2)——常用函数
Torch.norm参考参数:input(Tensor) – 输入张量p(float) – 范数计算中的幂指数值dim(int) – 缩减的维度out(Tensor, optional) – 结果张量keepdim(bool)– 保持输出的维度 (此参数官方文档中未给出,但是很常用)dim指定操作的维度a = torch.tensor([[1, 2, 3, 4], [1, 2, 3, 4]]).float() #norm仅支持floatTensor,a是一个2*4的原创 2020-06-01 22:10:03 · 450 阅读 · 0 评论 -
Pytorch教程(1)——基本语法
本教程参考自官方教程创建TensorMatrixUninitialized Matrix创建未初始化矩阵时,使用内存值进行初始化x = torch.empty(5, 3)print(x)Out:tensor([[1.0102e-38, 1.0561e-38, 7.3470e-39], [1.0653e-38, 1.0194e-38, 2.9389e-39], [9.0918e-39, 9.6429e-39, 1.0653e-38],原创 2020-05-27 21:38:13 · 1033 阅读 · 0 评论 -
自然语言处理(DL)学习笔记
本篇是记录深度学习中自然语言处理的一些思想和实践,尚处于整理中CNN网络参考李宏毅2020深度学习课程引出问题卷积运算卷积计算是通过将图像上与filter大小相同的部分(蓝框)与filter做内积后,再把每一个channel上都做同样的运算后相加即得到针对蓝框中部分做卷积的结果;这篇讲的比较详细池化层池化层不包含参数,它的目的是下采样CNN网络整体概览可以看到filter的size一般为(filter_size1, filter_size2, channel_s原创 2020-05-25 15:15:38 · 343 阅读 · 0 评论 -
NLP工具——fastNLP
fastNLP搬运自github高星项目fastNLP,复旦的工作,本文主要是自己使用中会参考的一些代码,传送门https://fastnlp.readthedocs.io/zh/latest/index.htmlDataSetDataSet是fastNLP用于封装数据的类,一般训练集、验证集和测试集会被加载为三个单独的DataSet对象DataSet中的数据组织形式类似一个表格,列即为...转载 2020-05-07 16:08:27 · 7634 阅读 · 2 评论 -
NLP工具——Flair
Flair本文翻译自github高star项目Flair教程,传送门:https://github.com/flairNLP/flairBase typesTwo types of objects: Sentence and Token, Sentence holds a textual sentence and is a list of Token.from flair.data ...转载 2020-05-07 16:04:09 · 1326 阅读 · 0 评论