Topik ini menyiapkan lingkungan kerja yang dipakai sepanjang jalur: Python 3.12 dengan pustaka PyTorch versi 2.15 yang berjalan pada CPU. Materinya mencakup pemasangan pustaka, pengertian perbedaan CPU dan GPU beserta konsekuensi praktisnya, dan smoke test pertama yang memastikan pemasangan benar-benar berfungsi. Setelah topik ini selesai, setiap cuplikan kode pada modul-modul berikutnya dapat dijalankan tanpa penyesuaian tambahan.
Instalasi PyTorch#
Pemasangan yang disarankan memulai dari lingkungan virtual agar versi paket tidak bercampur dengan proyek lain. Prosedurnya satu kali dijalankan di terminal dari folder proyek: python3 -m venv .venv untuk membuat lingkungan, source .venv/bin/activate untuk mengaktifkannya pada Linux, atau .venv\Scripts\activate pada Windows. Perintah berikut kemudian memasang pustakanya, dan pada perangkat tanpa GPU paket CPU sudah memadai untuk seluruh materi jalur ini.
# pasang paket PyTorch (di dalam lingkungan virtual yang aktif)
pip install torchRequirement already satisfied: torch in /home/kal/.venv/lib/python3.12/site-packages (2.15.0+cpu)
Requirement already satisfied: filelock in /home/kal/.venv/lib/python3.12/site-packages (from torch) (3.25.2)
Requirement already satisfied: typing-extensions>=4.13.0 in /home/kal/.venv/lib/python3.12/site-packages (from torch) (4.15.0)
Requirement already satisfied: setuptools>=77.0.3 in /home/kal/.venv/lib/python3.12/site-packages (from torch) (82.0.1)
Requirement already satisfied: sympy>=1.13.3 in /home/kal/.venv/lib/python3.12/site-packages (from torch) (1.14.0)
Requirement already satisfied: networkx>=2.5.1 in /home/kal/.venv/lib/python3.12/site-packages (from torch) (3.6.1)
Requirement already satisfied: jinja2 in /home/kal/.venv/lib/python3.12/site-packages (from torch) (3.1.6)
Requirement already satisfied: fsspec>=0.8.5 in /home/kal/.venv/lib/python3.12/site-packages (from torch) (2026.3.0)
Requirement already satisfied: mpmath<1.4,>=1.1.0 in /home/kal/.venv/lib/python3.12/site-packages (from sympy>=1.13.3->torch) (1.3.0)
Requirement already satisfied: MarkupSafe>=2.0 in /home/kal/.venv/lib/python3.12/site-packages (from jinja2->torch) (3.0.3)Pada mesin penulisan, pip melaporkan paket sudah terpasang versi 2.15.0+cpu, sedangkan pada pemasangan pertama pip mengunduh paket berukuran ratusan megabita terlebih dahulu. Akhiran +cpu menandakan paket bawaan CPU, sedangkan paket GPU membawa akhiran seperti +cu121 sesuai versi CUDA yang dituju. Nomor versi ini penting dicatat karena banyak pesan error di forum hanya muncul pada perbedaan versi tertentu.
# pastikan python dan pip yang dipakai berasal dari lingkungan yang benar
python3 -c "import sys; print(sys.version.split()[0])"3.12.16CPU dan GPU: apa yang berbeda secara nyata#
GPU mengungguli CPU pada pekerjaan yang dapat dikerjakan banyak unit paralel sekaligus, dan perkalian matriks besar termasuk pekerjaan itu. CPU unggul pada pekerjaan kecil dan bercabang, sehingga untuk tensor berukuran belasan elemen perbedaannya bahkan bisa berbalik. Karena itu materi fondasi jalur ini sepenuhnya berjalan di CPU, dan GPU menjadi kebutuhan nyata ketika model serta datanya membesar, misalnya pada pelatihan CNN dan transformer.
PyTorch menyatukan keduanya lewat perangkat (device). Tensor dan parameter model dipindahkan ke perangkat pilihan dengan .to(device), dan seluruh operasi berlangsung pada perangkat tempat tensor itu berada. Pola yang aman untuk kode yang harus berjalan di kedua perangkat adalah sebagai berikut.
import torch
device = "cuda" if torch.cuda.is_available() else "cpu"
print("perangkat terpilih:", device)
x = torch.arange(6, dtype=torch.float32).reshape(2, 3).to(device)
print("perangkat tensor x:", x.device)
print("jumlah elemen:", x.numel())perangkat terpilih: cpu
perangkat tensor x: cpu
jumlah elemen: 6Pada mesin penulisan tanpa GPU, torch.cuda.is_available() mengembalikan False, sehingga tensor berpindah ke CPU yang sekaligus menjadi perangkat bawaannya. Kode yang sama tanpa perubahan apa pun akan memilih cuda pada perangkat yang memilikinya, dan itulah alasan pola di atas ditulis sejak awal.
Smoke test pertama#
Smoke test adalah pemeriksaan kecil yang menuntut seluruh komponen inti bekerja bersama dalam beberapa detik. Pemeriksaan berikut menyentuh empat komponen yang akan dipakai setiap hari, yaitu pembuatan tensor, operasi matriks, autograd, dan modul jaringan saraf. Jalankan berkasnya langsung agar kegagalan lingkungan tertangkap sebelum materi dimulai.
import torch
import torch.nn as nn
torch.manual_seed(0)
lin = nn.Linear(3, 2)
x = torch.randn(4, 3)
y = lin(x)
print("bentuk keluaran:", tuple(y.shape))
w = torch.tensor(3.0, requires_grad=True)
z = w * w + 2 * w
z.backward()
print("gradien d(w^2+2w)/dw:", w.grad.item())
print("versi torch:", torch.__version__)bentuk keluaran: (4, 2)
gradien d(w^2+2w)/dw: 8.0
versi torch: 2.15.0+cpuBerkas dijalankan dengan python3 smoke_test.py dari folder proyek, dan keluaran di atas memperlihatkan tiga hal yang layak diperhatikan. Bentuk keluaran (4, 2) sesuai aturan perkalian matriks pada layer, gradien pada bernilai 8 dan dihitung autograd tanpa satu baris kalkulus manual, dan nomor versi menjadi acuan bila keluaran contoh di forum tidak cocok. Apabila ketiganya muncul tanpa pesan error, lingkungan dinyatakan siap.
Kebersihan lingkungan kerja#
Dua kebiasaan menjaga lingkungan tetap sehat sepanjang jalur. Pertama, satu lingkungan virtual untuk satu proyek, sehingga peningkatan versi PyTorch tidak merusak proyek lain. Kedua, benih keacakan yang ditetapkan pada setiap eksperimen, seperti torch.manual_seed(0) pada smoke test, karena banyak hasil pelatihan bergantung pada keacakan inisialisasi dan pemilahan data.
Penyimpanan berkas juga perlu disepakati sejak sekarang. Seluruh topik selanjutnya berasumsi kode dijalankan dari folder proyek kerja, dan setiap berkas yang diciptakan sebuah topik berada di samping skrip yang membuatnya. Konvensi sederhana ini memudahkan reproduksi karena setiap keluaran pada jalur ini dapat direproduksi ulang dengan berkas yang sama.
Ringkasan#
- PyTorch 2.15 untuk CPU dipasang melalui pip di dalam lingkungan virtual dan sudah memadai untuk seluruh materi jalur.
- Perangkat diatur lewat
.to(device)dengan polacudabila tersedia dancpusebagai bawaan, sehingga kode yang sama berjalan di keduanya. - Smoke test menuntut tensor, perkalian matriks, autograd, dan modul jaringan saraf bekerja bersama sebelum materi dimulai.
- Benih keacakan ditetapkan sejak awal karena inisialisasi dan pemilahan data bergantung padanya.
Referensi#
- PyTorch — Get Started — Halaman resmi pemasangan dengan pemilih paket sesuai sistem operasi dan perangkat.
- PyTorch documentation — Dokumentasi API resmi yang menjadi rujukan seluruh fungsi PyTorch pada jalur ini.
- torch.manual_seed — PyTorch — Halaman dokumentasi penetapan benih keacakan yang dipakai pada smoke test.