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.
Sekarang kita coba membuat tensor dengan pytorch yaitu
Membuat Tensor
import torch
a=torch.tensor([7,4,3,2,6])
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 :
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])
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])
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
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
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
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.