随笔分类 -  pytorch

摘要:官方原理图 前向传播过程:将数据按照batch维度分发到各个GPU上(平均分配),而后将模型拷贝到GPU,各GPU并行前向传播,将各个输出(o1、02、03、04)汇总到总的GPU。 后向传播过程:在总GPU上并行计算得到损失,并得到初始梯度;将各梯度分发到各GPU;并行计算梯度;汇总梯度,更新网络 阅读全文
posted @ 2020-01-10 22:47 suwenyuan 阅读(682) 评论(0) 推荐(0) 编辑
摘要:nn.CrossEntropyLoss()这个损失函数和我们普通说的交叉熵还是有些区别。 x是模型生成的结果,class是数据对应的label $loss(x,class)=-log(\frac{exp(x[class])}{\sum_j exp(x[j])})=-x[class]+log( 阅读全文
posted @ 2019-12-11 16:13 suwenyuan 阅读(7904) 评论(0) 推荐(2) 编辑
摘要:具体示例如下,注意观察维度的变化 1.改变tensor维度的操作:transpose、view、permute、t()、expand、repeat #coding=utf-8 import torch def change_tensor_shape(): x=torch.randn(2,4,3) s 阅读全文
posted @ 2019-12-11 11:16 suwenyuan 阅读(14536) 评论(0) 推荐(0) 编辑
摘要:如下是tensor乘法与加减法,对应位相乘或相加减,可以一对多 import torch def add_and_mul(): x = torch.Tensor([[[1, 2, 3], [4, 5, 6]], [[7, 8, 9], [10, 11, 12]]]) y = torch.Tensor 阅读全文
posted @ 2019-12-11 11:15 suwenyuan 阅读(11833) 评论(0) 推荐(0) 编辑
摘要:Variable一般的初始化方法,默认是不求梯度的 import torch from torch.autograd import Variable x_tensor = torch.randn(2,3) #将tensor转换成Variable x = Variable(x_tensor) prin 阅读全文
posted @ 2019-12-11 11:01 suwenyuan 阅读(1443) 评论(0) 推荐(0) 编辑
摘要:pack_padded_sequence是将句子按照batch优先的原则记录每个句子的词,变化为不定长tensor,方便计算损失函数。 pad_packed_sequence是将pack_padded_sequence生成的结构转化为原先的结构,定长的tensor。 其中test.txt的内容 As 阅读全文
posted @ 2019-12-10 10:31 suwenyuan 阅读(2611) 评论(0) 推荐(0) 编辑
摘要:利用pytorch来构建网络模型,常用的有如下三种方式 前向传播网络具有如下结构: 卷积层--》Relu层--》池化层--》全连接层--》Relu层 对各Conv2d和Linear的解释如下 Conv2d的解释如下 """ Conv2d(in_channels, out_channels, kern 阅读全文
posted @ 2019-12-03 21:18 suwenyuan 阅读(1095) 评论(0) 推荐(0) 编辑
摘要:tensor默认是不求梯度的,对应的requires_grad是False。 1.指定数值初始化 import torch #创建一个tensor,其中shape为[2] tensor=torch.Tensor([2,3]) print(tensor)#tensor([2., 3.]) #创建一个s 阅读全文
posted @ 2019-11-27 20:19 suwenyuan 阅读(3434) 评论(0) 推荐(0) 编辑
摘要:1.几种不同的初始化方法 import torch.nn as nn embedding = torch.Tensor(3, 5) #如下6种初始化方法 #正态分布 nn.init.normal_(embedding) #均匀分布 nn.init.uniform_(embedding) #凯明均匀分 阅读全文
posted @ 2019-11-14 21:47 suwenyuan 阅读(1106) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示