Pytorch中的view函数需要注意的点


一、函数说明

Pytorch中的view函数主要用于张量tensor的维度修改,通过view里面的参数,可以修改成任意维度的张量,前提是修改后的张量大小和原张量大小一致,比如45的张量,可以修改成225,但是不能修改成32*3。

二、数据共享

通过view修改维度以后的张量,和原张量是共享底层数据的,也就是说,如果你修改了一个张量中的数据,两个张量数据都会改变。比如原张量V1=torch.zeros(4,5),修改后的张量V2=V1.view(2,2,5),如果让V2[0][0][0]=1,则V1[0][0]也等于1。

三、参数

view的参数如果有-1,则表示这个维度的大小由其他位置决定,只能用剩下的数据维度。
还是V1=torch.zeros(4,5),V3=V1.view(2,-1,5),则V3的第二维度大小就是2了。每次只能有一个默认的-1维度,不然没法计算准确的维度大小。

四、维度变化

还是V1=torch.zeros(4,5),V4=V1.view(20,1)表示的是二维张量20*1,而V5=V1.view(20),或V5=V1.view(20,)表示的是一维张量,长度为20。在训练模型的时候需要注意,因为这两种方式都能进入全连接层或者线性神经网络,只不过出来的结果会对应输入的维度,在计算误差的时候,对目标的处理就不一样了,需要相同维度,也就是在loss = nn.xxxxxLoss(output, label)时,要注意ouput和label的维度是否一致。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值