Tutorial Python Tensorflow

Tutorial Python Tensorflow

Dalam pelajaran ini, kita akan melihat TensorFlow, yang merupakan perpustakaan pembelajaran engine sumber terbuka yang digunakan untuk merancang, membangun, dan melatih model pembelajaran mendalam. Dimungkinkan untuk melakukan komputasi numerik dengan pustaka TensorFlow di mana grafik aliran data di mana operasi matematika direpresentasikan sebagai node dan data direpresentasikan sebagai tepi di antara node tersebut.

Secara keseluruhan, kita akan membahas tiga topik utama dalam pelajaran ini:

  1. Apa itu Tensor dan TensorFlow
  2. Menerapkan algoritme ML dengan TensorFlow
  3. Kasus useran TensorFlow

TensorFlow adalah paket Python luar biasa dari Google yang memanfaatkan paradigma pemrograman aliran data dengan baik untuk perhitungan matematis yang sangat optimal. Beberapa fitur TensorFlow adalah:

  • Kemampuan komputasi terdistribusi yang membuat pengelolaan data dalam kumpulan besar menjadi lebih mudah
  • Pembelajaran mendalam dan dukungan jaringan saraf bagus
  • Ini mengelola struktur matematika yang kompleks seperti array n-dimensi dengan sangat efisien

Karena semua fitur ini dan berbagai algoritme pembelajaran engine yang diimplementasikan TensorFlow, menjadikannya pustaka skala produksi. Mari selami konsep di TensorFlow sehingga kita bisa membuat tangan kita kotor dengan kode setelahnya.

Installing TensorFlow

Karena kami akan menggunakan Python API untuk TensorFlow, ada baiknya mengetahui bahwa ini berfungsi dengan versi Python 2.7 dan 3.3+. Mari instal library TensorFlow sebelum beralih ke contoh dan konsep sebenarnya. Ada dua cara untuk menginstal paket ini. Yang pertama termasuk menggunakan pengelola paket Python, pip:

pip install tensorflow

Cara kedua berkaitan dengan Anaconda, kita dapat menginstal paket sebagai:

conda install -c conda-forge tensorflow

Jangan ragu untuk mencari versi nightly build dan GPU di halaman instalasi resmi TensorFlow.

Saya akan menggunakan manajer Anaconda untuk semua contoh dalam pelajaran ini. Saya akan meluncurkan Notebook Jupyter untuk hal yang sama:

Sekarang setelah kita siap dengan semua pernyataan impor untuk menulis beberapa kode, mari kita mulai menyelami paket SciPy dengan beberapa contoh praktis.

What are Tensors?

Tensor adalah struktur data dasar yang digunakan dalam Tensorflow. Ya, itu hanyalah cara untuk merepresentasikan data dalam pembelajaran mendalam. Mari kita visualisasikan mereka di sini:

Seperti yang dijelaskan pada gambar, tensors can be termed as n-dimensional arrayyang memungkinkan kita untuk merepresentasikan data dalam dimensi yang kompleks. Kita dapat menganggap setiap dimensi sebagai fitur data yang berbeda dalam pembelajaran mendalam. Ini berarti bahwa Tensor dapat berkembang menjadi cukup kompleks dalam hal kumpulan data yang kompleks dengan banyak fitur.

Setelah kita mengetahui apa itu Tensor, menurut saya cukup mudah untuk mengetahui apa yang terjadi di TensorFlow. Istilah itu berarti bagaimana tensor atau fitur dapat mengalir dalam kumpulan data untuk menghasilkan keluaran yang berharga saat kami melakukan berbagai operasi di atasnya.

Understanding TensorFlow with Constants

Seperti yang kita baca di atas, TensorFlow memungkinkan kita melakukan algoritme pembelajaran engine di Tensor untuk menghasilkan output yang berharga. Dengan TensorFlow, merancang dan melatih model Deep Learning sangatlah mudah.

TensorFlow hadir dengan bangunan Computation Graphs. Grafik Komputasi adalah grafik aliran data di mana operasi matematika direpresentasikan sebagai node dan data direpresentasikan sebagai tepi antara node tersebut. Mari kita menulis cupl
ikan kode yang sangat sederhana untuk memberikan visualisasi konkret:

import tensorflow as tf

x = tf.constant(5)
y = tf.constant(6)
z = x * y
print(z)

Ketika kita menjalankan contoh ini, kita akan melihat output berikut:

Mengapa perkaliannya salah? Bukan itu yang kami harapkan. Ini terjadi karena bukan ini cara kami melakukan operasi dengan TensorFlow. Pertama, kita harus memulaisession agar grafik komputasi berfungsi,

Dengan Sesi, kita bisa encapsulatekontrol operasi dan keadaan Tensor. Ini berarti bahwa suatu sesi juga dapat menyimpan hasil grafik komputasi sehingga dapat meneruskan hasil tersebut ke operasi berikutnya dalam urutan eksekusi pipeline. Mari buat sesi sekarang untuk mendapatkan hasil yang benar:

# Start with the session object
session = tf.Session()

# Provide the computation to session and store it
result = session.run(z)

# Print the result of computation
print(result)

# Close session
session.close()

Kali ini, kami memperoleh sesi dan menyediakannya dengan komputasi yang dibutuhkan untuk berjalan di node. Ketika kita menjalankan contoh ini, kita akan melihat output berikut:

Meskipun kami menerima peringatan dari TensorFlow, kami masih mendapatkan output yang benar dari perhitungan.

Single-element Tensor Operations

Sama seperti apa yang kita gandakan dua Tensor konstan dalam contoh terakhir, kita memiliki banyak operasi lain di TensorFlow yang dapat dilakukan pada elemen tunggal:

  • menambahkan
  • mengurangi
  • berkembang biak
  • div
  • mod
  • perut
  • negatif
  • tanda
  • kotak
  • bulat
  • persegi
  • pow
  • exp
  • catatan
  • maksimum
  • minimum
  • karena
  • sin

Operasi elemen tunggal berarti bahwa bahkan ketika Anda menyediakan larik, operasi akan dilakukan pada setiap elemen larik itu. Sebagai contoh:

import tensorflow as tf
import numpy as np

tensor = np.array([2, 5, 8])
tensor = tf.convert_to_tensor(tensor, dtype=tf.float64)
with tf.Session() as session:
print(session.run(tf.cos(tensor)))

Ketika kita menjalankan contoh ini, kita akan melihat output berikut:

Kami memahami dua konsep penting di sini:

  1. Array NumPy apa pun dapat dengan mudah diubah menjadi Tensor dengan bantuan fungsi convert_to_tensor
  2. Operasi dilakukan pada setiap elemen array NumPy

Placeholders and Variables

Di salah satu bagian sebelumnya, kita melihat bagaimana kita dapat menggunakan konstanta Tensorflow untuk membuat grafik komputasi. Namun TensorFlow juga memungkinkan kita untuk mengambil input saat dijalankan se
hingga grafik komputasi dapat bersifat dinamis. Ini dimungkinkan dengan bantuan Placeholder dan Variabel.

Sebenarnya, Placeholder tidak mengandung data apa pun dan harus diberikan input yang valid selama runtime dan seperti yang diharapkan, tanpa input, mereka akan menghasilkan error.

Placeholder dapat disebut sebagai kesepakatan dalam grafik bahwa input pasti akan diberikan saat runtime. Berikut adalah contoh Placeholder:

import tensorflow as tf

# Two placeholders
x = tf. placeholder(tf.float32)
y = tf. placeholder(tf.float32)

# Assigning multiplication operation w.r.t. a & b to node mul
z = x * y

# Create a session

session = tf.Session()

# Pass values for placehollders
result = session.run(z, {x: [2, 5], y: [3, 7]})
print('Multiplying x and y:', result)

Ketika kita menjalankan contoh ini, kita akan melihat output berikut:

Sekarang setelah kita memiliki pengetahuan tentang Placeholder, mari kita beralih ke Variabel. Kita tahu bahwa output dari suatu persamaan dapat berubah untuk set input yang sama dari waktu ke waktu. Jadi, ketika kami melatih variabel model kami, itu dapat mengubah perilakunya dari waktu ke waktu. Dalam skenario ini, sebuah variabel memungkinkan kita untuk menambahkan parameter yang dapat dilatih ini ke grafik komputasi kita. Sebuah Variabel dapat didefinisikan sebagai berikut:

x = tf.Variable( [5.2], dtype = tf.float32 )

Dalam persamaan di atas, x adalah variabel yang diberikan nilai awalnya dan tipe datanya. Jika kami tidak memberikan tipe data, itu akan disimpulkan oleh TensorFlow dengan nilai awalnya. Lihat tipe data TensorFlow di sini.

Tidak seperti konstanta, kita perlu memanggil fungsi Python untuk menginisialisasi semua variabel grafik:

init = tf.global_variables_initializer()
session.run(init)

Pastikan untuk menjalankan fungsi TensorFlow di atas sebelum kita menggunakan grafik kita.

Linear Regression with TensorFlow

Regresi Linier adalah salah satu algoritma yang paling umum digunakan untuk membangun hubungan dalam data kontinu yang diberikan. Hubungan antara titik koordinat, misalnya x dan y, disebut ahypothesis. Ketika kita berbicara tentang Regresi Linier, hipotesisnya adalah garis lurus:

y = mx + c

Di sini, m adalah kemiringan garis dan di sini, itu adalah vektor yang mewakili weights. c adalah koefisien konstan (y-intercept) dan di sini, itu mewakiliBias. Bobot dan bias disebutparameters of the model.

Regresi linier memungkinkan kita untuk memperkirakan nilai bobot dan bias sedemikian rupa sehingga kita memiliki nilai minimum cost function. Akhirnya, x adalah variabel bebas dalam persamaan dan y adalah variabel terikat. Sekarang, mari kita mulai membangun model linier di TensorFlow dengan cuplikan kode sederhana yang akan kami jelaskan:

import tensorflow as tf

# Variables for parameter slope (W) with initial value as 1.1
W = tf.Variable([1.1], tf.float32)

# Variable for bias (b) with initial value as -1.1
b = tf.Variable([-1.1], tf.float32)

# Placeholders for providing input or independent variable, denoted by x
x = tf.placeholder(tf.float32)

# Equation of Line or the Linear Regression
linear_model = W * x + b

# Initializing all the variables
session = tf.Session()
init = tf.global_variables_initializer()
session.run(init)

# Execute regression model
print(session.run(linear_model {x: [2, 5, 7, 9]}))

Di sini, kami melakukan apa yang kami jelaskan sebelumnya, mari rangkum di sini:

  • Kami mulai dengan mengimpor TensorFlow ke dalam skrip kami
  • Buat beberapa variabel untuk mewakili bobot vektor dan bias parameter
  • Placeholder akan dibutuhkan untuk mewakili input, x
  • Mewakili model linier
  • Inisialisasi semua nilai yang diperlukan untuk model

Ketika kita menjalankan contoh ini, kita akan melihat output berikut:

Cuplikan kode sederhana hanya memberikan ide dasar tentang bagaimana kita dapat membangun model regresi. Namun kita masih perlu melakukan beberapa langkah lagi untuk menyelesaikan model yang kita buat:

  • Kita perlu membuat model kita dapat dilatih sendiri sehingga dapat menghasilkan output untuk setiap input yang diberikan
  • Kita perlu memvalidasi output yang diberikan oleh model dengan membandingkannya dengan output yang diharapkan untuk x yang diberikan

Loss Function and Model Validation

Untuk memvalidasi model, kita perlu memiliki ukuran seberapa menyimpang keluaran arus dari keluaran yang diharapkan. Ada berbagai fungsi kerugian yang dapat digunakan di sini untuk validasi tetapi kita akan melihat salah satu metode yang paling umum,Sum of Squared Error or SSE.

Persamaan untuk SSE diberikan sebagai:

E = 1/2 * (t - y)2

Di Sini:

  • E = Mean Squared error
  • t = Keluaran yang Diterima
  • y = Keluaran yang Diharapkan
  • t – y = Error

Sekarang, mari kita tulis potongan kode sebagai kelanjutan dari potongan terakhir untuk mencerminkan nilai kerugian:

y = tf.placeholder(tf.float32)
error = linear_model - y
squared_errors = tf.square(error)
loss = tf.reduce_sum(squared_errors)
print(session.run(loss, {x:[2, 5, 7, 9], y:[2, 4, 6, 8]}))

Ketika kita menjalankan contoh ini, kita akan melihat output berikut:

Jelas, nilai kerugian sangat rendah untuk model regresi linier yang diberikan.

Kesimpulan

Dalam pelajaran ini, kita melihat salah satu paket Deep learning dan Machine learning yang paling populer, TensorFlow. Kami juga membuat model regresi linier yang memiliki akurasi sangat tinggi.

Related Posts