
深度学习
文章平均质量分 71
海滩上的那乌克丽丽
I can because i believe i can.
展开
-
NLG过程的优化与项目Inference
NLG:自然语言生成我们在做完train训练之后,需要对测试数据集进行测试,也就是NLG的过程。Greed Search(贪婪Search):做法:我们在训练好模型后,seq2seq的Decoder做预测的过程中,从<start>的标签开始输入, 预测出最大的概率对应的词,作为decoder下一步的输入,输入后再次预测一个最大概率的词,再将这个词作为下个步骤的输入,依次循环下去直到,最后输出<end>,代表这句话预测结束。Greed Search原创 2022-05-11 17:44:44 · 259 阅读 · 0 评论 -
tensorflow中embedding计算原理
# vocab_size:词表数量# embedding_dim: 词嵌入后维度tf.keras.layers.Embedding(vocab_size, embedding_dim)假设有一句话,I love youvocab_size:我们传入的词表大小是1000,embedding_dim:embedding后的维度256。先将 I love you 这三个词对应的索引(1行3列)传入Embedding层那么embedding会先将这1行三列的索引转换成One-hot编码.原创 2022-05-02 14:42:26 · 1548 阅读 · 0 评论 -
tensorflow使用笔记
张量:张量是一个多维数组,与numpy ndarray相似有一维张量、二维张量,三维张量等等张量创建在构建的时候整形默认是int32,浮点型默认是float32import tensorflow as tfimport numpy as np# 创建0维张量print(tf.constant(3))# tf.Tensor(3, shape=(), dtype=int32)# 创建一维张量print(tf.constant([1, 2, 3]))# tf.Ten原创 2022-04-21 13:41:56 · 1775 阅读 · 0 评论 -
Attention注意力机制&Transform架构
RNN不同的拓扑结构对应不同应用场景。many to many也就是我们所说的seq2seq中间RNN结构,下面的输入相当于encoder编码上面的输出相当于decoder解码这种结构下面全都是要输入的,上面也都是要输出的,只是我们没有画出来,没有画出来的输出我们不会真正用到Attention注意力机制举例:比如我们在做机器翻译的时候,我们希望他会有重点的进行翻译。基于Encoder-Decoder框架1.两层RNN链,左边蓝色的是Encoder,右边黄色原创 2022-04-16 09:59:11 · 2137 阅读 · 0 评论 -
RNN和LSTM循环神经网络
为什么为需要循环神经网络?像DNN这样的神经网络,前一个输入和后一个输入是完全没有关系的,但是某一些任务需要能够更好的处理序列信息(即前面的输入和后面的输入是有关系的)比如理解一句话的意思时,孤立的理解每个词是不够的,我们需要去处理这些词连接起来的整个序列。我们一般的做法是用word2vec将词变成向量,再将其传给RNN进行处理。RNN网络结构1.RNN有N个时刻的输入,每个输入就相当于每个词的向量。2.输入经过一个U矩阵全连接,经过隐藏层加和,非线性变换。在经过一个V矩原创 2022-04-13 18:21:08 · 1069 阅读 · 0 评论 -
词向量处理
计算机处理的是数字化的数据,文本字符数据是无法直接输入模型里面进行训练的。文本张量将文本表示成张量的形式,能够使语言文本可以作为计算机处理程序的输入,进行接下来一系列解析工作。词向量用来更好的提取特征将文本使用张量进行表示,其中一般将词汇表示成向量,称作词向量,在由各个词向量按顺序组成矩阵形成文本。方法:one-hot编码优点:操作简单,容易理解。缺点:完全割裂了词语词之间的联系,在大预料集下长度过大,占据大量内存。由于这个缺点明显,所以深度学习基本不用。# 导入用于.原创 2022-04-12 16:50:21 · 1144 阅读 · 0 评论 -
pytorch求梯度相关API
torch Tensor是整个package中的核心类requires_grad设置为True,表示会对张量进行跟踪,记录张量在正向传播中做的更改(相乘相加等等操作),只有跟踪张量的更改,才能在反向求导中进行计算。直接给tensor原地更改requires_grad为True,a.requires_grad_(True)import torchx = torch.ones(3, 3, requires_grad=True)y = x + 1print(x.grad_fn)prin原创 2022-04-09 22:05:47 · 954 阅读 · 0 评论 -
pytorch框架中tensor基础使用
1.创建一个没有初始化的矩阵,里面是内存随便给的数据。x = torch.empty(5, 3)print(x)2.创建一个有初始化的矩阵,rand 按照高斯分布进行初始化。x = torch.rand(5, 3)print(x)3.创建一个全0矩阵并可指定数据元素的类型为long。x = torch.zeros(5, 3, dtype=torch.long)print(x)4.直接创建张量。x = torch.tensor([2.5, 3.5])print(x原创 2022-04-09 21:00:37 · 1012 阅读 · 0 评论 -
卷积神经网络介绍&CNN架构
基本介绍:CNN里面最重要的构建单元就是卷积层。卷积层是局部连接,卷积是参数共享(一个卷积核去扫描整个图像)经过每层卷积层得到的结果我们叫做Feature map(特征图)。神经元在第一个卷积层不是连接输入图片的每个像素,知识链接他们感受野的像素,以此类推第二个卷积层的每一个神经元仅连接位于第一个卷积层的小方块的神经元。图像维介绍度:一个图像有三个维度(h,w,c)== (高,宽 ,通道),那么,有时候我们也叫c这个维度叫做深度,对于多个图像就再加一个维度图像个数(m,h,w,c)黑原创 2022-04-08 16:09:31 · 2747 阅读 · 0 评论 -
Batch Normalization Layer
目的:数据经过隐层 层层传递还能保持一开始的样子,我们希望不同批次数据在一开始传进来的时候,数据分布就尽可能一致。那么我们就一开始对输入的数据做归一化。原因:从正向传播的角度去考虑:在神经网络中,我们一般是一批次一批次进行训练,如果不同批次数据之间数据分布差异较大,网络刚刚学完上一个批次,又去学下一个批次,那么参数学习的波动就会大。由图象可以看出,数据分布状况经过一层层tanh隐层的传递,最后方差变得越来越小,这样直接导致的结果影响最终softmax分类的准确率。对于Re原创 2022-04-08 00:02:09 · 1308 阅读 · 0 评论 -
深度学习正则化技术Dropout
每次step(包括一次正向传播,一次反向传播),每个神经元包括输入神经元,不包括输出神经元,有一定概率的被临时丢掉,意味着他将被忽视在这次整个step中,但下次可能会在被激活。超参数p,dropout rate 一般设置0.5。设置后每个神经元将有0.5的概率被失活,未被失活的将被1/(1-rate)放大# 定义dropout层layer = tf.keras.layers.Dropout(0.2, input_shape=(2,))# 定义输入数据data = np.ar.原创 2022-04-07 13:16:38 · 1110 阅读 · 0 评论 -
深度学习梯度下降优化算法
MomentumSGB的缺点:其更新方向完全依赖于当前batch,因而其更新十分不稳定例如:Data数据分成三个批次batch1,batch2,batch3,在使用梯度下降的过程中,batch1可能求得的梯度是5,batch2求得的梯度是-3,batch3求得的梯度是5,那么loss在沿着batch1方向下降后,batch2又会沿着相反的方向回去。这就导致了梯度下降的不稳定性。解决:momentum动量模仿的是物体的惯性,在更新的时候一定程度上保留了之前的更新的方向。过程是累加的过程。原创 2022-04-07 10:08:24 · 1660 阅读 · 0 评论 -
深度学习之神经网络
神经网络有监督的算法。神经网络算法既能做回归又能做分类。我们说人工智能做的就是拟人,神经网络就做的最佳的拟人。神经元神经网络是由很多神经元组成。神经元的每个输入是机器学习中的每个特征维度X,每个连接是权重W,将特征维度和权重相乘再相加汇总,经过一个非线性变换(函数变换)后的结果,就是一个神经元的输出。也是下层神经元的输入。也就是说对于一个神经元,有可能就是一个线性回归,也有可能就是一个逻辑回归,这取决于加和后的非线性变换是什么函数。那么整个神经网路就是浅层的机器学习算法的原创 2022-03-24 23:02:04 · 3100 阅读 · 0 评论