Operasi Dasar dengan Tensor di PyTorch

Operasi Dasar Dengan Tensor Di Pytorch



Tensor adalah landasan PyTorch yang menyediakan struktur data yang kuat dan fleksibel untuk komputasi numerik dalam pembelajaran mendalam. Seperti array NumPy, array ini mewakili array multidimensi tetapi dengan fitur dan pengoptimalan tambahan yang dirancang khusus untuk tugas pembelajaran mendalam. Karena tensor adalah objek utama untuk menyimpan dan memanipulasi data numerik di PyTorch, tensor dapat memiliki dimensi berbeda, mulai dari skalar (tensor 0 dimensi) hingga vektor (tensor 1 dimensi), matriks (tensor 2 dimensi), dan lebih tinggi -tensor dimensi.

Salah satu keuntungan terbesar tensor adalah kemampuannya melakukan operasi matematika yang efisien. Tensor mendukung berbagai operasi aritmatika termasuk operasi elemen seperti penjumlahan, pengurangan, perkalian, dan pembagian serta operasi matriks seperti perkalian dan transpos matriks.

PyTorch menyediakan serangkaian fungsi dan metode komprehensif untuk memanipulasi tensor. Hal ini mencakup operasi untuk membentuk kembali tensor, mengekstraksi elemen atau subtensor tertentu, dan menggabungkan atau memisahkan tensor sepanjang dimensi tertentu. Selain itu, PyTorch menawarkan fungsionalitas untuk mengindeks, mengiris, dan menyiarkan tensor yang membuatnya lebih mudah untuk bekerja dengan tensor dengan berbagai bentuk dan ukuran.







Dalam artikel ini, kita akan mempelajari operasi dasar tensor di PyTorch, mempelajari cara membuat tensor, melakukan operasi dasar, memanipulasi bentuknya, dan memindahkannya antara CPU dan GPU.



Membuat Tensor

Tensor di PyTorch dapat dibuat dengan beberapa cara. Mari kita jelajahi beberapa metode umum.



Untuk membuat tensor, kita bisa menggunakan kelas “torch.Tensor” atau fungsi “torch.tensor”. Mari kita lihat beberapa contoh:





impor obor

# Membuat 1 - tensor dimensi dari daftar Python
tensor_1d = obor. tensor ( [ 1 , 2 , 3 , 4 , 5 ] )
mencetak ( tensor_1d )

# Membuat 2 - tensor dimensi dari daftar Python bersarang
tensor_2d = obor. tensor ( [ [ 1 , 2 , 3 ] , [ 4 , 5 , 6 ] ] )
mencetak ( tensor_2d )

# Buat tensor nol dengan bentuk tertentu
nol_tensor = obor. angka nol ( 3 , 2 )
mencetak ( nol_tensor )

# Buat tensor dengan bentuk tertentu
one_tensor = obor. yang ( 2 , 3 )
mencetak ( one_tensor )

# Buat tensor dengan nilai acak dari distribusi seragam
acak_tensor = obor. acak ( 2 , 2 )
mencetak ( acak_tensor )

Dalam contoh yang diberikan, kami membuat tensor dengan bentuk berbeda dan menginisialisasinya dengan berbagai nilai seperti angka tertentu, nol, satu, atau nilai acak. Anda akan melihat keluaran serupa saat menjalankan cuplikan kode sebelumnya:



Operasi Tensor

Setelah kita memiliki tensor, kita dapat melakukan berbagai operasi pada tensor tersebut seperti operasi aritmatika berdasarkan elemen, operasi matriks, dan banyak lagi.

Operasi Aritmatika Bijaksana Elemen

Operasi aritmatika berdasarkan elemen memungkinkan kita melakukan komputasi antar tensor berdasarkan elemen demi elemen. Tensor yang terlibat dalam operasi harus memiliki bentuk yang sama.

Berikut beberapa contohnya:

impor obor

# Buat tensor
tensor1 = obor. tensor ( [ 1 , 2 , 3 ] )
tensor2 = obor. tensor ( [ 4 , 5 , 6 ] )

# Tambahan
tambahan = tensor1 + tensor2
mencetak ( 'Tambahan:' , tambahan )

# Pengurangan
pengurangan = tensor1 - tensor2
mencetak ( 'Pengurangan:' , pengurangan )

# Perkalian
perkalian = tensor1 * tensor2
mencetak ( 'Perkalian:' , perkalian )

# Divisi
divisi = tensor1 / tensor2
mencetak ( 'Divisi:' , divisi )

Pada kode yang diberikan, kami melakukan operasi penjumlahan, pengurangan, perkalian, dan pembagian antara dua tensor yang menghasilkan tensor baru dengan nilai yang dihitung. Hasil cuplikan kodenya terlihat seperti berikut:

Operasi Matriks

PyTorch menyediakan operasi matriks yang efisien untuk tensor seperti perkalian matriks dan transpos. Operasi ini sangat berguna untuk tugas-tugas seperti aljabar linier dan komputasi jaringan saraf.

impor obor

# Buat tensor
tensor1 = obor. tensor ( [ [ 1 , 2 ] , [ 3 , 4 ] ] )
tensor2 = obor. tensor ( [ [ 5 , 6 ] , [ 7 , 8 ] ] )

# Perkalian matriks
matriks_produk = obor. matras ( tensor1 , tensor2 )
mencetak ( 'Produk Matriks:' , matriks_produk )

# Transpos matriks
matriks_transpose = tensor1. T
mencetak ( 'Transposisi Matriks:' , matriks_transpose )

Dalam contoh yang diberikan, kita melakukan perkalian matriks menggunakan fungsi “torch.matmul” dan memperoleh transpos matriks menggunakan atribut “.T”.

Manipulasi Bentuk Tensor

Selain melakukan operasi pada tensor, kita sering kali perlu memanipulasi bentuknya agar sesuai dengan kebutuhan tertentu. PyTorch menyediakan beberapa fungsi untuk membentuk ulang tensor. Mari kita jelajahi beberapa fungsi berikut:

impor obor

# Buat tensor
tensor = obor. tensor ( [ [ 1 , 2 , 3 ] , [ 4 , 5 , 6 ] ] )

# Bentuk ulang tensor
dibentuk ulang_tensor = tensor. membentuk kembali ( 3 , 2 )
mencetak ( 'Tensor yang Dibentuk Kembali:' , dibentuk ulang_tensor )

# Dapatkan ukuran tensor
ukuran = tensor. ukuran ( )
mencetak ( 'Ukuran Tensor:' , ukuran )

# Dapatkan jumlah elemen di dalam sebuah tensor
nomor_elemen = tensor. beri nama ( )
mencetak ( 'Jumlah Elemen:' , nomor_elemen )

Pada kode yang disediakan, kita membentuk ulang tensor menggunakan fungsi reshape, mengambil ukuran tensor menggunakan metode size, dan mendapatkan jumlah total elemen dalam tensor menggunakan metode numel.

Memindahkan Tensor Antara CPU dan GPU

PyTorch memberikan dukungan untuk akselerasi GPU yang memungkinkan kita melakukan komputasi pada kartu grafis yang secara signifikan dapat mempercepat tugas pembelajaran mendalam dengan menurunkan waktu pelatihan. Kita dapat memindahkan tensor antara CPU dan GPU menggunakan metode “ke”.

Catatan : Ini hanya dapat dilakukan jika Anda memiliki GPU NVIDIA dengan CUDA di mesin Anda.

impor obor

# Buat tensor pada CPU
tensor_cpu = obor. tensor ( [ 1 , 2 , 3 ] )

# Memeriksa jika GPU tersedia
jika obor. berbeda . tersedia ( ) :
# Pindahkan tensor ke GPU
tensor_gpu = tensor_cpu. ke ( 'berbeda' )
mencetak ( 'Tensor pada GPU:' , tensor_gpu )
kalau tidak :
mencetak ( 'GPU tidak tersedia.' )

Dalam kode yang diberikan, kami memeriksa apakah GPU tersedia menggunakan torch.cuda.is_available(). Jika GPU tersedia, kami memindahkan tensor dari CPU ke GPU menggunakan metode “to” dengan argumen “cuda”.

Kesimpulan

Memahami operasi tensor dasar sangat penting untuk bekerja dengan PyTorch dan membangun model pembelajaran mendalam. Dalam artikel ini, kita mempelajari cara membuat tensor, melakukan operasi dasar, memanipulasi bentuknya, dan memindahkannya antara CPU dan GPU. Berbekal pengetahuan ini, Anda kini dapat mulai bekerja dengan tensor di PyTorch, melakukan komputasi, dan membuat model pembelajaran mendalam yang canggih. Tensor berfungsi sebagai dasar untuk representasi dan manipulasi data di PyTorch yang memungkinkan Anda memanfaatkan kekuatan penuh framework pembelajaran mesin serbaguna ini.