masked_fill()、contiguous()、nn.Embedding()、register_buffer()、损失计算的格式要求、创建tensor的方法

文章介绍了PyTorch中几个重要的函数应用,如masked_fill()用于填充张量,contiguous()确保张量布局一致,nn.Embedding用于词嵌入,register_buffer()用于登记模型中不变的参数。此外,还讨论了计算损失时的注意事项以及创建tensor的不同方法。
摘要由CSDN通过智能技术生成

masked_fill()函数应用

contiguous()函数应用:当调用contiguous()时,会强制拷贝一份tensor,让它的布局和从头创建的一模一样,但是两个tensor完全没有联系;

nn.Embedding()函数应用

register_buffer()函数应用

4.1 在model中,我们需要更新其中的参数,训练结束将参数保存下来。但在某些时候,我们可能希望模型中的某些参数参数不更新(从开始到结束均保持不变),但又希望参数保存下来(model.state_dict() ),这是我们就会用到 register_buffer();

4.2 成员变量:不更新,但是不算是模型中的参数(model.state_dict());通过register_buffer()登记过的张量:会自动成为模型中的参数,随着模型移动(gpu/cpu)而移动,但是不会随着梯度进行更新;

4.3 模型保存下来的参数有两种:一种是需要更新的Parameter,另一种是不需要更新的buffer。在模型中,利用backward反向传播,可以通过requires_grad来得到buffer和parameter的梯度信息,但是利用optimizer进行更新的是parameter,buffer不会更新,这也是两者最重要的区别。这两种参数都存在于model.state_dict()的OrderedDict中,也会随着模型“移动”(model.cuda())

5 计算损失时,预测值和实际值要转换成相同的格式

Pytorch中创建tensor的几种方式详解

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值