【pytorchでニューラルネットワーク#1】テンソルの基礎

記事の目的

pytorchでニューラルネットワークを実装する上で必要になるテンソルの基礎について実装していきます。ここにある全てのコードは、コピペで再現することが可能です。

 

目次

  1. ライブラリとデータの作成
  2. データの変形
  3. データの参照
  4. numpyとテンソル

 

1 ライブラリとデータの作成

# In[1]
import numpy as np
import torch
torch.manual_seed(1)

# In[2]
x0 = torch.tensor(1)
print(x0.shape, x0)

# In[3]
x1 = torch.tensor([1,2,3,4])
print(x1.shape, x1)

# In[4]
x2 = torch.tensor([[1,2],[3,4]])
print(x2.shape, x2, sep="\n")

# In[5]
x3 = torch.tensor([[[1,2,3],[4,5,6],[7,8,9]],[[1,2,3],[4,5,6],[7,8,9]]])
print(x3.shape, x3, sep="\n")

# In[6]
x4 = torch.tensor([[[[1,2],[3,4]],[[1,2],[3,4]],[[1,2],[3,4]]],[[[1,2],[3,4]],[[1,2],[3,4]],[[1,2],[3,4]]]])
print(x4.shape, x4, sep="\n")

# In[7]
x = torch.arange(5)
x

# In[8]
x = torch.arange(1,5)
x

# In[9]
x = torch.arange(1,10,2)
x

# In[10]
x = torch.rand(2,2)
x

# In[11]
x = torch.randn(3,3)
x

# In[12]
x = torch.normal(5, 1, size=(6,))
print(x.shape, x)

 

2 データの変形

# In[13]
y = x.view(2,3)
print(y.shape, y, sep="\n")

# In[14]
y = x.unsqueeze(1)
print(y.shape, y, sep="\n")

 

3 データの参照

# In[15]
x = torch.randn(3,4)
x

# In[16]
x[0,]

# In[17]
x[:,2]

# In[18]
x[:,0:2]

 

4 numpyとテンソル

# In[19]
x = np.arange(10)
x

# In[20]
y = torch.tensor(x)
y

# In[21]
y = torch.from_numpy(x)
y

# In[22]
y.numpy()