ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

BERT书籍阅读笔记(二)PyTorch编程基础(1)

2022-02-10 09:31:25  阅读:217  来源: 互联网

标签:BERT torch 模型 编程 张量 PyTorch 维度 model Numpy


文章目录

向量乘法

(1)阿达玛积(Hadamard Product)
  定义为两个矩阵对应位置的元素进行相乘。

c = a * b

(2)点积(Dot Product)
  矩阵相乘,第一个矩阵的列数必须等于第二个矩阵的行数。

c = a @ b
c = np.dot(a, b)
c = torch.matmul(a,b)

张量间的操作

(1)张量与Numpy相互转换的陷阱
  在将Numpy转化为张量时,只是简单的将指针赋值,并不会发生复制现象,因此二者共享一块内存。
  PyTorch考虑了这一点,在Numpy转化为张量后,如果对张量进行修改,则其内部会触发复制机制,额外开辟一块内存,不会影响原来Numpy的值。
  但是对Numpy进行修改的话,会同时改变对应张量的值。
(2)修改张量的维度

a.reshape()
a.view()

  二者都要求指定的目标形状必须与原有的输入张量的元素个数一致,在指定形状的过程中可以用-1来代表该维度由系统自动运算。
  但是view要求存储连续,因此一般与contiguous()方法连用
(3)增减张量的维度

torch.squeeze() #去除值为1的维度
torch.unsqueeze()#增加一个值为1的维度
torch.cat()#张量拼接

(4)交换张量维度的值

torch.permute(1,0) #将维度0和维度1交换

控制模型每次训练的结果相同

torch.manual_seed(0)
torch.cuda.manuak_seed_all(0)
np.random.seed(0)#设计随机数种子

定义一个模型的基本步骤

  (1)定义模型类,使其继承于Module类。
  (2)在模型类的初始化接口中定义网络层
  (3)在模型类的正向数据流处理接口中,将网络层连接起来(需要时添加激活函数),搭建出网络结构。

获取模型信息

#获得各层信息及名字
model.children()
model.named_children()#获得各层信息及名字
model.modules()#获取整个网络的结构信息
model.parameters()
model.named_parameters()#获取模型中的参数
model.state_dict()#获取模型的全部参数

标签:BERT,torch,模型,编程,张量,PyTorch,维度,model,Numpy
来源: https://blog.csdn.net/jst100/article/details/122820420

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有