1. Embedding的使用 pytorch中实现了Embedding,下面是关于Embedding的使用. torch.nn包下的Embedding,作为训练的一层,随模型训练得到适合的词向量. 建立词向量层 embed = torch.nn.Embedding(n_vocabulary,embedding_size) 找到对应的词向量放进网络:词向量的输入应该是什么样子 实际上,上面通过随机初始化建立了词向量层后,建立了一个"二维表",存储了词典中每个词的词向量.每个mini-b…
原文地址:https://blog.csdn.net/happyrocking/article/details/83657993 RNN(Recurrent Neural Network)是一类用于处理序列数据的神经网络.什么是序列呢?序列是一串有顺序的数据,比如某一条数据为 [x1,x2,x3,x4][x1,x2,x3,x4]      [x_1, x_2, x_3, x_4][x1​,x2​,x3​,x4​],其中每个元素可以是一个字符.一个单词.一个向量,甚至是一个声音.比如: 自然语言处…
一.简介 循环神经网络(recurrent neural network,RNN),是一类专门用于处理序列数据(时间序列.文本语句.语音等)的神经网络,尤其是可以处理可变长度的序列:在与传统的时间序列分析进行比较的过程之中,RNN因为其梯度弥散等问题对长序列表现得不是很好,而据此提出的一系列变种则展现出很明显的优势,最具有代表性的就是LSTM(long short-term  memory),而本文就从标准的循环神经网络结构和原理出发,再到LSTM的网络结构和原理,对其有一个基本的认识和阐述:…
最近用tensorflow写了个OCR的程序,在实现的过程中,发现自己还是跳了不少坑,在这里做一个记录,便于以后回忆.主要的内容有lstm+ctc具体的输入输出,以及TF中的CTC和百度开源的warpCTC在具体使用中的区别. 正文 输入输出 因为我最后要最小化的目标函数就是ctc_loss,所以下面就从如何构造输入输出说起. tf.nn.ctc_loss 先从TF自带的tf.nn.ctc_loss说起,官方给的定义如下,因此我们需要做的就是将图片的label(需要OCR出的结果),图片,以及图…
Module 是 pytorch 提供的一个基类,每次我们要 搭建 自己的神经网络的时候都要继承这个类,继承这个类会使得我们 搭建网络的过程变得异常简单. 本文主要关注 Module 类的内部是怎么样的. 初始化方法中做了什么def __init__(self): self._backend = thnn_backend self._parameters = OrderedDict() self._buffers = OrderedDict() self._backward_hooks = Or…
123456789101112lstm=nn.LSTM(input_size,                     hidden_size,                      num_layers)x                         seq_len,                          batch,                              input_sizeh0            num_layers× \times×num_di…
官方文档 torch.matmul() 函数几乎可以用于所有矩阵/向量相乘的情况,其乘法规则视参与乘法的两个张量的维度而定. 关于 PyTorch 中的其他乘法函数可以看这篇博文,有助于下面各种乘法的理解. torch.matmul() 将两个张量相乘划分成了五种情形:一维 × 一维.二维 × 二维.一维 × 二维.二维 × 一维.涉及到三维及三维以上维度的张量的乘法. 以下是五种情形的详细解释: 如果两个张量都是一维的,即 torch.Size([n]) ,此时返回两个向量的点积.作用与 to…
1.优化器算法简述 首先来看一下梯度下降最常见的三种变形 BGD,SGD,MBGD,这三种形式的区别就是取决于我们用多少数据来计算目标函数的梯度,这样的话自然就涉及到一个 trade-off,即参数更新的准确率和运行时间. 2.Batch Gradient Descent (BGD) 梯度更新规则: BGD 采用整个训练集的数据来计算 cost function 对参数的梯度:   缺点: 由于这种方法是在一次更新中,就对整个数据集计算梯度,所以计算起来非常慢,遇到很大量的数据集也会非常棘手,而…
catalogue . 引言 . LSTM NETWORKS . LSTM 的变体 . GRUs (Gated Recurrent Units) . IMPLEMENTATION GRUs 0. 引言 In this post we’ll learn about LSTM (Long Short Term Memory) networks and GRUs (Gated Recurrent Units).  LSTMs were first proposed in 1997 by Sepp Ho…
pytorch nn.Embeddingclass torch.nn.Embedding(num_embeddings, embedding_dim, padding_idx=None, max_norm=None, norm_type=2, scale_grad_by_freq=False, sparse=False) num_embeddings (int) - 嵌入字典的大小 embedding_dim (int) - 每个嵌入向量的大小 padding_idx (int, optiona…