pytorch
文章平均质量分 58
七月听雪
这个作者很懒,什么都没留下…
展开
-
HMM分词
两个假设:求解目标:根据两个假设可以得到:模型参数:发射概率矩阵(也称之为观测概率矩阵)HMM与CRF区别:1.CRF是判别式模型,HMM是生成式模型。linear-CRF模型要优化求解的是条件概率P(y|x),则 HMM要求解的是联合分布P(x,y)。 判别式模型和生成式模型的区别:机器学习中的判别式模型和生成式模型 - 知乎2....原创 2022-04-10 16:17:00 · 475 阅读 · 0 评论 -
Pytorch入门
任务1:PyTorch张量计算与Numpy的转换任务2:梯度计算和梯度下降过程使用numpy创建一个y=10*x+b+noise(0,1)的数据,其中x是0到100的范围,以0.01进行等差数列使用pytroch定义w和b,并使用随机梯度下降,完成回归拟合。任务3:PyTorch全连接层原理和使用步骤2:在pytorch中使用矩阵乘法实现全连接层步骤3:在pytorch中使用nn.Linear层任务4:PyTorch激活函数原理和使用步骤2:在pytorch中..原创 2021-11-04 16:22:06 · 579 阅读 · 0 评论 -
pytorch——GRU原理
数学公式: .. math:: \begin{array}{ll} r_t = \sigma(W_{ir} x_t + b_{ir} + W_{hr} h_{(t-1)} + b_{hr}) \\ z_t = \sigma(W_{iz} x_t + b_{iz} + W_{hz} h_{(t-1)} + b_{hz}) \...原创 2019-09-11 18:00:11 · 1056 阅读 · 0 评论 -
tansor——初始化
https://blog.csdn.net/shanglianlm/article/details/85165523https://blog.csdn.net/dss_dssssd/article/details/83959474原创 2019-09-06 08:20:00 · 295 阅读 · 0 评论 -
pytorch——LSTM 前向传播实现
pytorch里的LSTM原理: 主要是它的ht-1和xt不是直接拼在一起的。 LSTM学习的参数: .. math:: \begin{array}{ll} \\ i_t = \sigma(W_{ii} x_t + b_{ii} + W_{hi} h_{(t-1)} + b_{hi}) \\ ...原创 2019-09-04 11:05:19 · 1115 阅读 · 0 评论 -
torch.sum()
在dim这个维度上,对里面的tesnor 进行加和,如果keepdim=False,返回结果会删去dim这个维度。因为在dim上加和之后,dim=1,所以可以直接删去。import torcha = torch.tensor([[[1,2,3],[4,5,6]],[[7,8,9],[10,11,12]]])print(a.size())c = torch.sum(a,dim=1)...原创 2019-09-02 21:45:19 · 14108 阅读 · 1 评论 -
pytorch——张量乘法
torch.matmul:广播机制:什么是广播呢?其实就是在运算中,Pytorch将较小的数组拉伸成较大数组的形状(shape),然后进行加减乘除不同矩阵的加减乘除运算。什么是广播呢?其实就是在运算中,Pytorch将较小的数组拉伸成较大数组的形状(shape),然后进行加减乘除不同矩阵的加减乘除运算。就是说维度必须是那三种情况中的一种。* :a与b做*乘法,原...原创 2019-09-02 10:32:25 · 19662 阅读 · 0 评论 -
pytorch——参数
model.parameters() 这是查看模型的参数。import torch.nn as nnembedding = nn.Embedding(5,5)lstm = nn.LSTM(5,5)P = embedding.parameters()for p in P: print(p)print('==========================')L ...原创 2019-09-01 17:20:22 · 359 阅读 · 0 评论 -
torch.cat()
import torcha = torch.tensor([[1,2,3],[4,5,6]])print(a.size())b = torch.tensor([[7,8,9]])print(b.size())c = torch.cat((a,b),dim=0)print(c.size())print(c)torch.Size([2, 3])torch.Size([1, 3]...原创 2019-09-01 11:19:53 · 154 阅读 · 0 评论 -
pytorch——permute,view
permute(),适合多维数据。可以灵活的对原数据的维度进行调换,而数据本身不变。view() 把原先tensor中的数据按照行优先的顺序排成一个一维的数据(这里应该是因为要求地址是连续存储的),然后按照参数组合成其他维度的tensor。比如说是不管你原先的数据是[[[1,2,3],[4,5,6]]]还是[1,2,3,4,5,6],因为它们排成一维向量都是6个元素,所以只要view后面的参数...原创 2019-08-31 21:21:06 · 437 阅读 · 0 评论 -
pytorch——nn.BatchNorm1d()
Batch Normalization原理:概念的引入:Internal Covariate Shift : 其主要描述的是:训练深度网络的时候经常发生训练困难的问题,因为,每一次参数迭代更新后,上一层网络的输出数据经过这一层网络计算后,数据的分布会发生变化,为下一层网络的学习带来困难(神经网络本来就是要学习数据的分布,要是分布一直在变,学习就很难了),此现象称之为Int...原创 2019-08-31 20:29:45 · 84917 阅读 · 19 评论 -
pytorch——nn.Linear()
nn.Linear()就是全连接层。实现的操作就是: import torchx = torch.randn(128, 20) # 输入的维度是(128,20)m = torch.nn.Linear(20, 30) # 20,30是指维度output = m(x)print('m.weight.shape:\n ', m.weight.shap...原创 2019-08-31 18:07:03 · 1463 阅读 · 1 评论 -
pytorch——torch.squeeze() 和torch.unsqueeze()的用法
torch.squeeze()torch.squeeze() 这个函数主要对数据的维度进行压缩,去掉维数为1的的维度,比如是一行或者一列这种,一个一行三列(1,3)的数去掉第一个维数为一的维度之后就变成(3)行。torch.squeeze(a)就是将a中所有为1的维度删掉。不为1的维度没有影响。a.squeeze(N) 就是去掉a中指定的维数为一的维度。还有一种形式就是b=torch.sq...原创 2019-08-31 16:07:18 · 702 阅读 · 0 评论 -
torchtext—ValueError: Fan in and fan out can not be computed for tensor with fewer than 2 dimensions
vectors.unk_init = init.xavier_uniform_ # 没有命中的token的初始化方式TEXT.build_vocab(train, min_freq=5, vectors=vectors)我的pytorch是1.1.0,torchtext是0.4.0。一运行到这两句就会报错。其实ValueError: Fan in and fan out can n...原创 2019-08-31 15:26:54 · 5457 阅读 · 3 评论 -
pack_padded_sequence,pad_packed_sequence
pack_padded_sequence:我们正常传进RNN模型的是一个被填充之后的序列矩阵。但是这样pad会影响模型的效果,所以要把pad删除再传进模型。pack_padded_sequence就是起这个功能的。 pack之后,原来填充的 PAD占位符被删掉了。 输入的形状可以是(T×B×* )。T是最长序列长度,B是batch size,*代表任意...原创 2019-08-29 20:03:36 · 3201 阅读 · 0 评论 -
pytorch——RNN,LSTM,GRU层
声明层: 要用一个层,首先的声明一个层。 参数: input_size:就是词向量的维度,每一个词的词向量直接怼进RNN的cell里。 hidden_size:隐层张量维度,一般等于input_size。使用层: 输入张量形状: 如果只有一句话,就可以把这一整句话,当作一个序列全部...原创 2019-08-29 18:07:15 · 541 阅读 · 0 评论 -
pytorch——embedding层
深度学习框架主要是整明白,每一层的输入输出。是什么:embed = torch.nn.Embedding(n_vocabulary,embedding_size)embedding层(嵌入层)其实就是一个(n_vocabulary*embedding_size )矩阵,n_vocabulary代表你有多少个词,embedding_size代表每一个词的词向量的维度。所以这个矩阵就是保...原创 2019-08-29 11:42:49 · 7781 阅读 · 1 评论 -
PyTorch——dataloader dataset
dataloader dataset是pytorch用来加载数据的API。导入:from torch.utils.data impost DataLoader,DatasetDataset:dataset必须继承自torch.utils.data.Dataset,内部要实现两个函数一个是__len__用来获取整个数据集的大小,一个是__getitem__用来从数据集中得到一个数据...原创 2019-08-29 10:40:24 · 300 阅读 · 0 评论 -
torchtext使用
torchtext预处理流程: 1.定义Field:声明如何处理数据 2.定义Dataset:得到数据集,此时数据集里每一个样本是一个 经过 Field声明的预处理 预处理后的 wordlist 3.建立vocab:在这一步建立词汇表,词向量(word embeddings) 4.构造迭代器:构造迭代器,用来分批次训练模型定义Field: 实例化Fiel...原创 2019-08-26 16:14:24 · 2050 阅读 · 0 评论