查看: 1658|回复: 1

Pytorch重塑张量尺寸

[复制链接]

7

主题

28

帖子

79

积分

注册会员

Rank: 2

积分
79
发表于 2018-10-15 14:14:04 | 显示全部楼层 |阅读模式
我有一个一维向量,它的维数是(5)我想把它重塑成二维矩阵(1,5)

下面是numpy代码

  1. >>> import numpy as np
  2. >>> a = np.array([1,2,3,4,5])
  3. >>> a.shape
  4. (5,)
  5. >>> a = np.reshape(a, (1,5))
  6. >>> a.shape
  7. (1, 5)
  8. >>> a
  9. array([[1, 2, 3, 4, 5]])
  10. >>>
复制代码
但是我怎么用Pytorch张量(和变量)来做呢。我不想切换回numpy并再次切换回Torch变量,因为它会丢失反向传播信息。
代码如下:

  1. >>> import torch
  2. >>> from torch.autograd import Variable
  3. >>> a = torch.Tensor([1,2,3,4,5])
  4. >>> a

  5. 1
  6. 2
  7. 3
  8. 4
  9. 5
  10. [torch.FloatTensor of size 5]

  11. >>> a.size()
  12. (5L,)
  13. >>> a_var = variable(a)
  14. >>> a_var = Variable(a)
  15. >>> a_var.size()
  16. (5L,)
  17. .....do some calculation in forward function
  18. >>> a_var.size()
  19. (5L,)
复制代码
现在我想让它的大小为(1,5)。如何在不丢失梯度信息的情况下,在变量中调整或重塑pytorch张量的大小





回复

使用道具 举报

4

主题

34

帖子

88

积分

注册会员

Rank: 2

积分
88
发表于 2018-10-15 14:21:37 | 显示全部楼层
你可以使用a.view(1,5)
  1. a.view(1,5)
  2. Out:

  3. 1  2  3  4  5
  4. [torch.FloatTensor of size 1x5]
复制代码
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

快速回复 返回顶部 返回列表