Jika kamu pernah menggunakan machine learning atau deep learning mungkin kamu akan cukup banyak mendengar tentang pytorch. Pytorch sendiri saya gunakan untuk project deep learning pada kuliah saat ini. Pada kesempatan kali ini saya akan coba menulis tentang Pytorch.
PyTorch adalah sebuah framework open-source untuk machine learning dan deep learning yang dikembangkan oleh Facebook’s AI Research Lab (FAIR). PyTorch memudahkan para pengembang untuk membangun, melatih, dan menguji model AI, seperti neural network.
Framework ini berbasis Python. Iya, namanya aja ada py nya di depannya. Framework ini dirancang untuk fleksibilitas, sehingga kamu bisa melakukan eksplorasi dan eksperimen dengan mudah. Salah satu fitur unggulannya adalah dynamic computation graph, yang memungkinkan kamu memodifikasi model selama runtime. Fitur ini menjadikan PyTorch sangat intuitif dan ramah untuk debugging.
Salah satu yang mungkin fungsinya hampir sama yaitu Keras. Tapi keunggulan pytorch ini ada pada fleksibilitasnya. Meskipun learning curvenya lebih sulit.
Apa saja fitur utama pytorch? Berikut adalah daftarnya
Tensors: Mirip dengan array NumPy, tetapi lebih kuat karena mendukung komputasi di GPU.
Autograd: Sistem automatic differentiation yang menghitung gradien secara otomatis selama pelatihan model.
Modular Design: PyTorch mempermudah pembangunan model melalui modul seperti torch.nn
untuk neural network dan torch.optim
untuk optimasi.
DataLoader: Mempermudah proses memuat data secara efisien.
Pytorch banyak digunakan pada kasus spesifik berikut
Kita bisa melakukan instalasi pytorch sama seperti kita melakukan instalasi library pada python.
Caranya adalah sebagai berikut
pip install torch
import torch
import torch.nn as nn
import torch.optim as optim
# Dataset sederhana
X = torch.tensor([[0, 0], [0, 1], [1, 0], [1, 1]], dtype=torch.float32)
y = torch.tensor([[0], [1], [1], [0]], dtype=torch.float32)
# Model MLP
class MLP(nn.Module):
def __init__(self):
super(MLP, self).__init__()
self.layer = nn.Sequential(
nn.Linear(2, 4), # 2 input features, 4 hidden units
nn.ReLU(),
nn.Linear(4, 1), # 4 hidden units, 1 output
nn.Sigmoid()
)
def forward(self, x):
return self.layer(x)
model = MLP()
# Loss dan optimizer
criterion = nn.BCELoss() # Binary Cross-Entropy Loss
optimizer = optim.Adam(model.parameters(), lr=0.01)
# Training loop
for epoch in range(1000):
optimizer.zero_grad()
output = model(X)
loss = criterion(output, y)
loss.backward()
optimizer.step()
if epoch % 100 == 0:
print(f'Epoch {epoch}, Loss: {loss.item()}')
# Prediksi
print("Predictions:", model(X).detach().numpy())
Penjelasan Kode:
Hasil akhirnya adalah model yang bisa memprediksi output biner berdasarkan input.
Oke itu dulu tulisan tentang pytorch. Semoga bermanfaat.
Ada yang udah nyoba?