In [1]:
import torch
In [2]:
X = torch.rand(4,6)
In [3]:
X
Out[3]:
tensor([[0.2102, 0.4207, 0.6856, 0.9808, 0.6745, 0.5926],
[0.3412, 0.1248, 0.4000, 0.0485, 0.7410, 0.3831],
[0.5128, 0.4114, 0.8710, 0.8282, 0.5770, 0.2604],
[0.5338, 0.6599, 0.6382, 0.9356, 0.3773, 0.2457]])
In [4]:
Y = X.t()
In [5]:
Y
Out[5]:
tensor([[0.2102, 0.3412, 0.5128, 0.5338],
[0.4207, 0.1248, 0.4114, 0.6599],
[0.6856, 0.4000, 0.8710, 0.6382],
[0.9808, 0.0485, 0.8282, 0.9356],
[0.6745, 0.7410, 0.5770, 0.3773],
[0.5926, 0.3831, 0.2604, 0.2457]])
In [7]:
Y.shape
Out[7]:
torch.Size([6, 4])
In [8]:
Y[0,0] = 0
In [9]:
Y
Out[9]:
tensor([[0.0000, 0.3412, 0.5128, 0.5338],
[0.4207, 0.1248, 0.4114, 0.6599],
[0.6856, 0.4000, 0.8710, 0.6382],
[0.9808, 0.0485, 0.8282, 0.9356],
[0.6745, 0.7410, 0.5770, 0.3773],
[0.5926, 0.3831, 0.2604, 0.2457]])
In [10]:
X
Out[10]:
tensor([[0.0000, 0.4207, 0.6856, 0.9808, 0.6745, 0.5926],
[0.3412, 0.1248, 0.4000, 0.0485, 0.7410, 0.3831],
[0.5128, 0.4114, 0.8710, 0.8282, 0.5770, 0.2604],
[0.5338, 0.6599, 0.6382, 0.9356, 0.3773, 0.2457]])
In [11]:
Z = X.view(2,12)
In [13]:
Z
Out[13]:
tensor([[0.0000, 0.4207, 0.6856, 0.9808, 0.6745, 0.5926, 0.3412, 0.1248, 0.4000,
0.0485, 0.7410, 0.3831],
[0.5128, 0.4114, 0.8710, 0.8282, 0.5770, 0.2604, 0.5338, 0.6599, 0.6382,
0.9356, 0.3773, 0.2457]])
In [14]:
Z[1,1] = 240
In [15]:
Z
Out[15]:
tensor([[0.0000e+00, 4.2072e-01, 6.8561e-01, 9.8077e-01, 6.7453e-01, 5.9260e-01,
3.4122e-01, 1.2476e-01, 4.0002e-01, 4.8548e-02, 7.4101e-01, 3.8314e-01],
[5.1279e-01, 2.4000e+02, 8.7104e-01, 8.2818e-01, 5.7698e-01, 2.6042e-01,
5.3376e-01, 6.5995e-01, 6.3819e-01, 9.3562e-01, 3.7735e-01, 2.4567e-01]])
In [16]:
X
Out[16]:
tensor([[0.0000e+00, 4.2072e-01, 6.8561e-01, 9.8077e-01, 6.7453e-01, 5.9260e-01],
[3.4122e-01, 1.2476e-01, 4.0002e-01, 4.8548e-02, 7.4101e-01, 3.8314e-01],
[5.1279e-01, 2.4000e+02, 8.7104e-01, 8.2818e-01, 5.7698e-01, 2.6042e-01],
[5.3376e-01, 6.5995e-01, 6.3819e-01, 9.3562e-01, 3.7735e-01, 2.4567e-01]])
In [17]:
Z.is_contiguous()
Out[17]:
True
In [18]:
Y.is_contiguous()
Out[18]:
False
In [19]:
Y
Out[19]:
tensor([[0.0000e+00, 3.4122e-01, 5.1279e-01, 5.3376e-01],
[4.2072e-01, 1.2476e-01, 2.4000e+02, 6.5995e-01],
[6.8561e-01, 4.0002e-01, 8.7104e-01, 6.3819e-01],
[9.8077e-01, 4.8548e-02, 8.2818e-01, 9.3562e-01],
[6.7453e-01, 7.4101e-01, 5.7698e-01, 3.7735e-01],
[5.9260e-01, 3.8314e-01, 2.6042e-01, 2.4567e-01]])
In [21]:
Y.stride()
Out[21]:
(1, 6)
In [22]:
X.stride()
Out[22]:
(6, 1)
In [23]:
U = X[:,2]
In [24]:
U
Out[24]:
tensor([0.6856, 0.4000, 0.8710, 0.6382])
In [26]:
U[0] = 0.0
In [27]:
X
Out[27]:
tensor([[0.0000e+00, 4.2072e-01, 0.0000e+00, 9.8077e-01, 6.7453e-01, 5.9260e-01],
[3.4122e-01, 1.2476e-01, 4.0002e-01, 4.8548e-02, 7.4101e-01, 3.8314e-01],
[5.1279e-01, 2.4000e+02, 8.7104e-01, 8.2818e-01, 5.7698e-01, 2.6042e-01],
[5.3376e-01, 6.5995e-01, 6.3819e-01, 9.3562e-01, 3.7735e-01, 2.4567e-01]])
In [28]:
U.stride()
Out[28]:
(6,)
In [29]:
X = torch.arange(10)
In [30]:
X
Out[30]:
tensor([0, 1, 2, 3, 4, 5, 6, 7, 8, 9])
In [34]:
Y = X.unfold(0,3,1)
In [35]:
Y.stride()
Out[35]:
(1, 1)
In [37]:
Y[1,1] = 17
In [38]:
Y
Out[38]:
tensor([[ 0, 1, 17],
[ 1, 17, 3],
[17, 3, 4],
[ 3, 4, 5],
[ 4, 5, 6],
[ 5, 6, 7],
[ 6, 7, 8],
[ 7, 8, 9]])
In [ ]: