Pytorch中的view()函数

25 篇文章 7 订阅

原文地址

Pytorch系列目录

view()函数有些像numpy中的reshape函数,是用来的tensor(张量)形式的数据进行围堵重构的,直接用程序来说明用法

  • 生成测试数据

    import torch
    
    torch.manual_seed(0)	# 用来控制内部的随机机制使每次得到的随机数一样
    
    tt = torch.rand(3,4)
    # tensor([[0.4963, 0.7682, 0.0885, 0.1320],
    #         [0.3074, 0.6341, 0.4901, 0.8964],
    #         [0.4556, 0.6323, 0.3489, 0.4017]])
    
  • 实现方法

    print(tt.view((2,-1)))
    # tensor([[0.4963, 0.7682, 0.0885, 0.1320, 0.3074, 0.6341],
    #         [0.4901, 0.8964, 0.4556, 0.6323, 0.3489, 0.4017]])
    print(tt.view(2,-1))
    # tensor([[0.4963, 0.7682, 0.0885, 0.1320, 0.3074, 0.6341],
    #         [0.4901, 0.8964, 0.4556, 0.6323, 0.3489, 0.4017]])
    

    其中-1表示不对这一维度的数量做具体限定,算出来是多少就是多少,注意在所有维度中只能有一个维度指定为-1

    view()函数可以接收两种形式的输入,一种是给出一个‘形状’ (2,-1),一种是一次列举各维度的维度值2,-1

  • 可以用reshape()函数实现

    pytorch提供了很好的numpy兼容性,很多numpy下的方法在pytorch中也可以使用,用reshape()函数实现方式和实现结果与view相同

    print(tt.reshape((2,-1)))
    # tensor([[0.4963, 0.7682, 0.0885, 0.1320, 0.3074, 0.6341],
    #         [0.4901, 0.8964, 0.4556, 0.6323, 0.3489, 0.4017]])
    print(tt.reshape(2,-1))
    # tensor([[0.4963, 0.7682, 0.0885, 0.1320, 0.3074, 0.6341],
    #         [0.4901, 0.8964, 0.4556, 0.6323, 0.3489, 0.4017]])
    
  • 再多做一点儿,三维(2,2,-1)

    print(tt.reshape(2,2,-1))
    # tensor([[[0.4963, 0.7682, 0.0885],
    #          [0.1320, 0.3074, 0.6341]],
    # 
    #         [[0.4901, 0.8964, 0.4556],
    #          [0.6323, 0.3489, 0.4017]]])
    

    要在2维空间里print3维的数据,大概就是这样了吧

  • 14
    点赞
  • 23
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

BBJG_001

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值