PyTorch : 1. Tensor 1-D

blog-image

1-D Tensor

Function Dasar

Kalau Tensor dimensi 0 merupakan bilangan maka selanjutnya tensor 1 dimensi itu merupakan array dengan bilangan. Sebagai contoh

  • 0-D : 1, 2, 3, 0.2, dst
  • 1-D : Baris dalam Database, Vector, Time series data, dll

Pada tensor terdapat element maka tipe data pada tiap elmenet tersebut disebut dengan data type, dan tipe data pada tensor tersebut disebut dengan tensor type.

image-20201127152230128

Sekarang kita coba membuat tensor dengan pytorch yaitu

Membuat Tensor

import torch
a=torch.tensor([7,4,3,2,6])

image-20201127152914380

Tipe Data Element Tensor ( dtype )

Jadi kita bisa mengakses element pada tensor dengan index, misalkan mau mengakses element pertama maka diakses dengan a[0] dan seterusnya. Untuk mengetahui tipe data bisa dengan menggunakan perintah

a.dtype
# torch.int64

Tipe Data Tensor ( type )

untuk mengetahui tipe tensor dengan perintah

a.type()
# torch.LongTensor

Berikut contoh membuat float tensor ( Tensor dengan elementnya bertipe float )

import torch
a=torch.tensor([0.0, 1.0, 2.67])
a.dtype
# torch.float32

Kita juga bisa menentukan dengan spesifik data type dari tensor dengan tambahan dtype saat create tensor misalkan :

image-20201127154248366

Mengubah Tipe Data Tensor

Kita bisa mengubah tipe tensor dengan perintah a.type() misalkan :

import torch
a=torch.Tensor([7,4,3,2,6])
a.dtype()
# torch.int64
a=a.type(torch.float32)
a.dtype()
# torch.float32

Ukuran & Dimensi Tensor

Kita bisa mengetahui ukuran dari tensor dengan perintah size() dan mengetahui dimensi dari tensor dengan perintah ndimension(). Sebagai contoh :

a=torch.Tensor([0,1,2,3,4])
a.size()
# torch.size(5)
a.ndimension()
# 1

Convert Dimensi Tensor

Pada contoh sebelumnya a=torch.Tensor([1,2,3,4]) merupakan tensor 1-D, sekarang kita akan mengconvertnya menjadi 2-D tensor yaitu dengan

a=torch.Tensor([0,1,2,3,4])
a.ndimension()
# 1
# seperti kita tau untuk mengetahui size nya dengan perintah 
a.size()
# 5
a_col=a.view(5,1)

Langkah diatas lebih mudah menggunakan -1 untuk menyatakan kolom sesuai size tensor tersebut sehingga perintahnya menjadi

a_col=a.view(-1,1)

Convert Tensor dari Numpy

Kita dengan mudah membuat tensor pytorch dari numpy berikut contohnya

import torch

numpy_array = np.array([0.0, 1.0, 2.0, 3.0, 4.0])
torch_tensor = torch.from_numpy(numpy_array)
back_to_numpy = torch_tensor.numpy()

Convert Tensor dari Pandas

Sama dengan sebelumnya, membuat tensor dari pandas juga mudah dilakukan dengan function torch.from_numpy, berikut contohnya

pandas_series = pd.Series([0.0, 1.0, 2.0, 3.0, 4.0])
torch_tensor = torch.from_numpy(pandas_series.values)

Convert Tensor menjadi List

Kita juga bisa mengubah tensor menjadi python list dengan perintah tolist contohnya

this_tensor = torch.tensor([0, 1, 2, 3])
torch_to_list = this_tensor.tolist()

Convert element tensor menjadi nilai python

Kadang kita lebih mudah bekerja dalam python dibanding tensor berikut contohnya

new_tensor = torch.tensor([5, 2, 6, 1])
new_tensor[0]
# akan menghasilkan tensor dengan 1-D yaitu 5
value_pertama = new_tensor[0].item()
# akan menghasilkan nilai integer 5

Indexing & Slicing

Pada bagian sebelumnya kita mengakses element yang berada pada tensor

c = torch.tensor([20, 1, 2, 3, 4])

# Misalkan kita akan mengubah nilai pertama dengan 100 dengan printah
c[0] = 100

# maka nilai c yang baru adalah tensor([100, 1, 2, 3, 4])

Misalkan kita akan membuat tensor baru dengan element dari tensor c diatas dengan element mulai dari 1 sampai 4, maka perintahnya adalah

d = c[1:4]

# maka akan dihasilkan tensor([1, 2, 3])

image-20201128180830252

Dengan perintah tersebut maka kita bisa mengubah element ke 3 dan 4 dengan nilai baru yaitu dengan perintah

c = torch.tensor([100, 1, 2, 3, 4])
c[3:5] = torch.tensor([300, 400])
# maka akan dihasilkan tensor([100, 1, 2, 300, 400])

image-20201128181256567

Operasi Standar

Penjumlahan Tensor

![image-20201128181553567](/home/jayuda/Documents/DOC/WRITING BOOKS/PYTORCH//images/blog/nunung_pamungkas_pytorch/[1.1_TENSOR]_penjumlahan_tensor.jpg)

Seperti pada penjumlahan Vector, penjumlahan pada tensor juga berlaku

u =  torch.tensor([1, 0])
v =  torch.tensor([0, 1])

z = u + v

# akan menghasilkan tensor([1, 1])

Perkalian Tensor

Seperti pada penjumlahan, perkalian vektor dengan skalar berlaku

image-20201128181933298

Sehingga perkalian tensor dengan skalar juga berlaku

y = torch.tensor([1, 2])
z = 2*y
# akan menghasilkan tensor([2, 4])

Pada perkalian tensor dengan tensor sama seperti perkalian vector dengan vector

image-20201128182424216

Sehingga perkalian tensor berlaku

u =  torch.tensor([1, 5])
v =  torch.tensor([2, 3])
x = u*v
# maka akan dihasilkan tensor([2, 15])

Dot Product

Dot product pada vector berlaku

image-20201128182911656

Sehingga pada tensor berlaku

u =  torch.tensor([1, 5])
v =  torch.tensor([2, 3])
dotresult = torch.dot(u,v)
# maka akan dihasilkan skalar 5

Function

Pada tensor juga berlaku function standar seperti mean, max, sin, dll yang mana function matematik tersebut dikenakan pada setiap elemen dari tensor tersebut.