![](https://img-blog.csdnimg.cn/20200819144638818.jpg?x-oss-process=image/resize,m_fixed,h_224,w_224)
nlp学习笔记
文章平均质量分 66
跟随网上大佬吴恩达团队学习nlp知识以及tensorflow2中的框架的运用,记录一些随笔作为学习的参考
唐僧爱吃唐僧肉
这个作者很懒,什么都没留下…
展开
-
transformer t5 relative position代码解读
T5模型的调用T5Attention类别的调用T5Attention类别的调用首先查看一下初始化参数的值self.has_relative_attention_bias = Falseself.relative_attention_num_buckets = 32self.d_model = 512self.key_value_proj_dim = 64self.inner_dim = 512接着进入forward调用程序部分batch_size,seq_length = hidden_原创 2022-07-07 18:35:06 · 3858 阅读 · 6 评论 -
bazel安装以及tensorflow的编译
bazel安装bazel与tensorflow对应版本bazel安装的官方文档官方文档推荐使用bazelisk来安装对应的bazel,对应的网址如下:bazelist的安装教程tensorflow阅读过程注意tensorflow中的./config必须下载tensorflow的源码才能够找到然而......原创 2022-07-07 17:04:48 · 764 阅读 · 0 评论 -
静态链接和动态链接的学习
最近在学习深度学习框架的时候,发现编程的过程中经常需要使用静态库和动态库,并且在阅读tensorflow框架的时候,常常发生找不到源代码的现象,之前只是听说过动态链接这个名词,并不了解动态链接具体的机制和其中的内容,这里通过学习动态链接的过程,进一步理解和体会tensorflow底层代码的构成1.静态库:函数和数据被编译进一个二进制文件(通常扩展名为.lib)。使用静态库并编译链接可执行文件时,链接器从库中赋值这些函数和数据并把他们和应用程序的其他模块组合起来创建最终的可执行文件.EXE。使用时包含头文件原创 2022-07-07 17:04:31 · 120 阅读 · 0 评论 -
pybind11教程翻译
pybind11对应教程First StepThis sections demonstrates the basic features of pybind11. Before getting started, make sure that development environment is set up to compile the included set of test cases.开始之前,确保你的环境设置成为能够编译测试集的开发环境。Compiling the test casesLin原创 2022-07-07 16:56:13 · 546 阅读 · 0 评论 -
权重交叉熵的应用
在实际应用中的指标可能与现实中的数据中的分布不同比如考虑一组多分类数据的准确率,这个时候你就需要考虑这组数据每个标签的分布,因为有可能某几个标签在这组数据中的内容较多,而另外几个标签在这组数据之中出现的次数较少,此时你就需要给交叉熵损失函数赋上相应的权重,因为如果不负上权重,你计算的可能保证了这组数据按照分布比例的计算值较好,但是准确率,召回率一般为每个标签计算之后再求平均,这就相当于考虑的是每个标签的一种平均分布,与你的训练集合上面的数据分布不同,造成效果并不好。......原创 2022-07-07 16:37:55 · 399 阅读 · 0 评论 -
手动实现反向传播算法
#!/usr/bin/env python# encoding: utf-8"""@author: HuRuiFeng@file: 7.9-backward-prop.py@time: 2020/2/24 17:32@desc: 7.9 反向传播算法实战的代码"""import matplotlib.pyplot as pltimport numpy as npimport seaborn as snsfrom sklearn.datasets import make_moonsf原创 2022-07-07 16:33:23 · 438 阅读 · 0 评论 -
斯皮尔曼相关系数的解读
最近在编写程序的时候使用到了scipy.stats.spearmanr这个库,由于自己之前未曾使用过斯皮尔曼相关系数,对于这个调用函数理解不够深度,特编写文章记录自己的学习过程。斯皮尔曼相关系数是一个衡量两个变量的依赖性的非参数指标,它并不假设两个数据集是相同分布的,像其他的相关系数一样,这个变量的范围从-1到+1,0暗示着两个参数之间没有相关性。如果数据中没有重复值,并且两个变量完全单调相关时,斯皮尔曼相关系数为+1或-1,当X增加时,Y趋向于增加时,斯皮尔曼相关系数为正,而当X增加并且Y趋向于减少时,原创 2021-01-06 22:59:22 · 40298 阅读 · 6 评论 -
pytorch transpose函数解析
transpose函数的本意是将两个相应的维度进行变换,比如如下的这个tensor矩阵import torchX = torch.Tensor([[1,2,3],[4,5,6]])X = X.transpose(0, 1)print(X)输出结果为可以看出矩阵相当于一个变换操作,原先的行变为现在的列,原先的列变为现在的行现在变换X对应的矩阵的内容,将X变为227的对应的矩阵原先X对应的矩阵内容为经过如下的对应的矩阵变换X = X.transpose(0,1)变换的结果为这里原创 2020-11-10 16:02:55 · 3018 阅读 · 0 评论 -
pytorch中textrnn对应的结构理解
首先贴出一张经典的textrnn的流程图对应的textrnn的结构如下:~~~pythonimport torchimport torch.nn as nnrnn = nn.RNN(10,20,2)#10为输入x的特征大小,20为隐藏层h的特征大小#2为循环层的数量(RNN中重复的部分)#input_size = 10,hidden_size = 20,num_layers = 2input = torch.randn(5,3,10)h0 = torch.randn(2,3,20原创 2020-11-09 15:22:35 · 951 阅读 · 2 评论 -
UNILM与BERT之中MASK处理比较
将Bert的Transformer架构跟Seq2Seq结合起来进行操作从原则上来讲,任何NLP问题都可以转化为Seq2Seq来做,它是一个真正的万能模型,因此,如果能够做到Seq2Seq,理论上就可以实现任意任务了。UNILM提供了一种优雅的方式,能够让我们直接用单个Bert模型就可以做Seq2Seq任务,而不需要区分encoder和decoder。实现这一点几乎不费吹灰之力----------------只需要一个特别的Mask。不过左图只是最朴素的方案,它把“你想吃啥”也加入了预测范围了(导致它转载 2021-05-07 13:49:54 · 429 阅读 · 0 评论 -
nlp~tensorflow解析json格式文件
json格式对应的文件链接(名字为sarcasm.json)对应的其中一组数据如下:import osos.environ['TF_CPP_MIN_LOG_LEVEL']='3'import jsonwith open(r'D:\pythonproject\tmp\sarcasm.json', 'r') as f: datastore = json.load(f)#里面为对应的放置文件的位置,操作完之后将获得一个列表datastore#里面包含三种数据类型的列表:标题,URL和is原创 2020-08-19 17:22:44 · 1146 阅读 · 0 评论 -
nlp进一步处理~增添语料中没有的单词并且让语句大小变为一致
代码中加入了padding功能,如果句子长度不够的话,会用0填充不足的序列import osos.environ['TF_CPP_MIN_LOG_LEVEL']='3'import tensorflow as tffrom tensorflow import kerasfrom tensorflow.keras.preprocessing.text import Tokenizer#Tokenizer:令牌生成器from tensorflow.keras.prepr原创 2020-08-19 15:56:50 · 472 阅读 · 0 评论