例如,我有維數爲(5)的一維向量。我想將它重新塑造成2D矩陣(1,5)。Pytorch重塑張量維數
這裏是我如何做到這一點與numpy的
>>> import numpy as np
>>> a = np.array([1,2,3,4,5])
>>> a.shape
(5,)
>>> a = np.reshape(a, (1,5))
>>> a.shape
(1, 5)
>>> a
array([[1, 2, 3, 4, 5]])
>>>
但我怎麼能做到這一點與Pytorch張量(和變量)。我不想切換回numpy並再次切換到Torch變量,因爲它會丟失反向傳播信息。
這是我在Pytorch
>>> import torch
>>> from torch.autograd import Variable
>>> a = torch.Tensor([1,2,3,4,5])
>>> a
1
2
3
4
5
[torch.FloatTensor of size 5]
>>> a.size()
(5L,)
>>> a_var = variable(a)
>>> a_var = Variable(a)
>>> a_var.size()
(5L,)
.....do some calculation in forward function
>>> a_var.size()
(5L,)
現在我想它的尺寸爲(1,5)。 如何在變量中調整或重新設置pytorch張量的維數而不丟失grad信息。 (因爲我會喂到另一個模型前向後)
注意這**不**修改原始張'了'。它只是創建一個視圖。 – kmario23