BERT书籍阅读笔记(二)PyTorch编程基础(1)
2022/2/10 9:42:44
本文主要是介绍BERT书籍阅读笔记(二)PyTorch编程基础(1),对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
文章目录
- 向量乘法
- 张量间的操作
- 控制模型每次训练的结果相同
- 定义一个模型的基本步骤
- 获取模型信息
向量乘法
(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书籍阅读笔记(二)PyTorch编程基础(1)的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-11-26MATLAB 中 A(7)=[];什么意思?-icode9专业技术文章分享
- 2024-11-26UniApp 中如何实现使用输入法时保持页面列表不动的效果?-icode9专业技术文章分享
- 2024-11-26在 UniApp 中怎么实现输入法弹出时禁止页面向上滚动?-icode9专业技术文章分享
- 2024-11-26WebSocket是什么,怎么使用?-icode9专业技术文章分享
- 2024-11-26页面有多个ref 要动态传入怎么实现?-icode9专业技术文章分享
- 2024-11-26在 UniApp 中实现一个底部输入框的常见方法有哪些?-icode9专业技术文章分享
- 2024-11-26RocketMQ入门指南:搭建与使用全流程详解
- 2024-11-26RocketMQ入门教程:轻松搭建与使用指南
- 2024-11-26手写RocketMQ:从入门到实践的简单教程
- 2024-11-25【机器学习(二)】分类和回归任务-决策树(Decision Tree,DT)算法-Sentosa_DSML社区版