Mari kita mulai tutorial ini dengan pengenalan TensorFlow:
Apa itu TensorFlow?
TensorFlow adalah platform ujung ke ujung sumber terbuka untuk membuat aplikasi Machine Learning. Ini adalah pustaka matematika simbolis yang menggunakan aliran data dan pemrograman yang dapat dibedakan untuk melakukan berbagai tugas yang berfokus pada pelatihan dan inferensi jaringan saraf dalam. Ini memungkinkan pengembang untuk membuat aplikasi pembelajaran mesin menggunakan berbagai alat, pustaka, dan sumber daya komunitas.
Saat ini, pustaka pembelajaran mendalam paling terkenal di dunia adalah TensorFlow Google. Produk Google menggunakan pembelajaran mesin di semua produknya untuk meningkatkan mesin telusur, terjemahan, pemberian keterangan gambar, atau rekomendasi.
Sebagai contoh nyata, pengguna Google dapat merasakan pencarian yang lebih cepat dan lebih halus dengan AI. Jika pengguna mengetik kata kunci di bilah pencarian, Google memberikan rekomendasi tentang apa yang bisa menjadi kata berikutnya.
Google ingin menggunakan pembelajaran mesin untuk memanfaatkan kumpulan data mereka yang sangat besar untuk memberikan pengalaman terbaik kepada pengguna. Tiga kelompok berbeda menggunakan pembelajaran mesin:
- Peneliti
- Ilmuwan data
- Programmer.
Mereka semua dapat menggunakan perangkat yang sama untuk berkolaborasi satu sama lain dan meningkatkan efisiensi mereka.
Google tidak hanya memiliki data apa pun; mereka memiliki komputer paling masif di dunia, jadi Tensor Flow dibuat sesuai skala. TensorFlow adalah library yang dikembangkan oleh Tim Google Brain untuk mempercepat pembelajaran mesin dan penelitian jaringan neural dalam.
Itu dibangun untuk berjalan pada banyak CPU atau GPU dan bahkan sistem operasi seluler, dan memiliki beberapa pembungkus dalam beberapa bahasa seperti Python, C ++ atau Java.
Dalam tutorial TensorFlow ini, Anda akan belajar
- Apa itu TensorFlow?
- Sejarah TensorFlow
- Cara Kerja TensorFlow
- Arsitektur TensorFlow
- Di mana Tensorflow dapat dijalankan?
- Pengantar Komponen TensorFlow
- Mengapa TensorFlow populer?
- Daftar Algoritme Terkemuka yang didukung oleh TensorFlow
- Contoh TensorFlow Sederhana
- Opsi untuk Memuat Data ke TensorFlow
- Buat pipeline Tensorflow
Sejarah TensorFlow
Beberapa tahun yang lalu, pembelajaran mendalam mulai mengungguli semua algoritme pembelajaran mesin lainnya saat memberikan data dalam jumlah besar. Google melihatnya dapat menggunakan jaringan neural dalam ini untuk meningkatkan layanannya:
- Gmail
- Foto
- Mesin pencari Google
Mereka membangun kerangka kerja yang disebut Tensorflow untuk memungkinkan peneliti dan pengembang bekerja sama dalam model AI. Setelah dikembangkan dan diskalakan, ini memungkinkan banyak orang untuk menggunakannya.
Ini pertama kali dipublikasikan pada akhir 2015, sedangkan versi stabil pertama muncul pada 2017. Ini adalah open source di bawah lisensi Apache Open Source. Anda dapat menggunakannya, memodifikasinya, dan mendistribusikan ulang versi yang dimodifikasi dengan biaya tertentu tanpa membayar apa pun ke Google.
Selanjutnya dalam tutorial Deep learning TensorFlow ini, kita akan mempelajari arsitektur TensorFlow dan cara kerja TensorFlow.
Cara Kerja TensorFlow
TensorFlow memungkinkan Anda membuat grafik dan struktur dataflow untuk menentukan bagaimana data bergerak melalui grafik dengan mengambil input sebagai array multi-dimensi yang disebut Tensor. Ini memungkinkan Anda untuk membuat diagram alur operasi yang dapat dilakukan pada input ini, yang berjalan di satu ujung dan muncul di ujung lain sebagai output.
Arsitektur TensorFlow
Arsitektur Tensorflow berfungsi dalam tiga bagian:
- Memproses ulang data
- Bangun modelnya
- Latih dan perkirakan modelnya
Ini disebut Tensorflow karena mengambil input sebagai larik multi-dimensi, juga dikenal sebagai tensor . Anda dapat membuat semacam diagram alur operasi (disebut Grafik) yang ingin Anda lakukan pada input itu. Masukan masuk di satu ujung, dan kemudian mengalir melalui sistem operasi ganda ini dan keluar di ujung lainnya sebagai keluaran.
Inilah mengapa disebut TensorFlow karena tensor masuk ke dalamnya mengalir melalui daftar operasi, lalu keluar dari sisi lain.
Di mana Tensorflow dapat dijalankan?
Persyaratan perangkat keras dan perangkat lunak TensorFlow dapat diklasifikasikan menjadi
Tahap Pengembangan: Ini adalah saat Anda melatih mode. Pelatihan biasanya dilakukan di Desktop atau laptop Anda.
Run Phase atau Inference Phase: Setelah pelatihan selesai, Tensorflow dapat dijalankan di banyak platform berbeda. Anda bisa menjalankannya
- Desktop yang menjalankan Windows, macOS atau Linux
- Cloud sebagai layanan web
- Perangkat seluler seperti iOS dan Android
Anda dapat melatihnya di beberapa mesin lalu menjalankannya di mesin lain, setelah Anda memiliki model yang terlatih.
Model ini dapat dilatih dan digunakan pada GPU serta CPU. GPU awalnya dirancang untuk video game. Pada akhir 2010, peneliti Stanford menemukan bahwa GPU juga sangat baik dalam operasi matriks dan aljabar sehingga membuatnya sangat cepat untuk melakukan perhitungan semacam ini. Pembelajaran mendalam mengandalkan banyak perkalian matriks. TensorFlow sangat cepat dalam menghitung perkalian matriks karena ditulis dalam C ++. Meskipun diterapkan di C ++, TensorFlow dapat diakses dan dikontrol oleh bahasa lain, terutama Python.
Terakhir, fitur penting TensorFlow adalah TensorBoard. TensorBoard memungkinkan untuk memantau secara grafis dan visual apa yang dilakukan TensorFlow.
Pengantar Komponen TensorFlow
Tensor
Nama Tensorflow secara langsung berasal dari framework intinya: Tensor . Di Tensorflow, semua komputasi melibatkan tensor. Tensor adalah vektor atau matriks berdimensi-n yang mewakili semua jenis data. Semua nilai dalam tensor sebuah memegang tipe data yang identik dengan diketahui (atau sebagian dikenal) bentuk . Bentuk data adalah dimensi matriks atau larik.
Tensor dapat berasal dari data masukan atau hasil komputasi. Di TensorFlow, semua operasi dilakukan di dalam grafik . Grafik adalah sekumpulan komputasi yang berlangsung secara berurutan. Setiap operasi disebut node op dan terhubung satu sama lain.
Grafik menguraikan operasi dan koneksi antara node. Namun, itu tidak menampilkan nilainya. Tepi node adalah tensor, yaitu cara untuk mengisi operasi dengan data.
Grafik
TensorFlow memanfaatkan kerangka kerja grafik. Grafik mengumpulkan dan mendeskripsikan semua penghitungan seri yang dilakukan selama pelatihan. Grafik memiliki banyak keuntungan:
- Itu dilakukan untuk berjalan di banyak CPU atau GPU dan bahkan sistem operasi seluler
- Portabilitas grafik memungkinkan untuk mempertahankan perhitungan untuk digunakan segera atau nanti. Grafik dapat disimpan untuk dieksekusi di masa mendatang.
- Semua perhitungan dalam grafik dilakukan dengan menghubungkan tensor bersama-sama
- Tensor memiliki simpul dan tepi. Node menjalankan operasi matematika dan menghasilkan keluaran titik akhir. Tepi tepi menjelaskan hubungan input / output antar node.
Mengapa TensorFlow populer?
TensorFlow adalah library terbaik dari semuanya karena dibuat agar dapat diakses oleh semua orang. Library Tensorflow menggabungkan API yang berbeda untuk membangun arsitektur deep learning berskala seperti CNN atau RNN. TensorFlow didasarkan pada komputasi grafik; itu memungkinkan pengembang untuk memvisualisasikan pembangunan jaringan saraf dengan Tensorboad. Alat ini berguna untuk men-debug program. Terakhir, Tensorflow dibuat untuk diterapkan dalam skala besar. Ini berjalan pada CPU dan GPU.
Tensorflow menarik popularitas terbesar di GitHub dibandingkan dengan framework deep learning lainnya.
Daftar Algoritme Terkemuka yang didukung oleh TensorFlow
Berikut adalah daftar algoritme TensorFlow yang didukung:
Saat ini, TensorFlow 1.10 memiliki API bawaan untuk:
- Regresi linier: tf.estimator.LinearRegressor
- Klasifikasi: tf.estimator.LinearClassifier
- Klasifikasi pembelajaran mendalam: tf.estimator.DNNClassifier
- Deep learning wipe dan deep: tf.estimator.DNNLinearCombinedClassifier
- Regresi pohon penguat: tf.estimator.BoostedTreesRegressor
- Klasifikasi pohon yang ditingkatkan: tf.estimator.BoostedTreesClassifier
Contoh TensorFlow Sederhana
import numpy as npimport tensorflow as tf
Di dua baris kode pertama, kami telah mengimpor tensorflow sebagai tf. Dengan Python, itu adalah praktik umum untuk menggunakan nama pendek untuk perpustakaan. Keuntungannya adalah menghindari mengetik nama lengkap perpustakaan saat kita perlu menggunakannya. Misalnya, kita dapat mengimpor tensorflow sebagai tf, dan memanggil tf jika kita ingin menggunakan fungsi tensorflow
Mari berlatih alur kerja dasar Tensorflow dengan contoh TensorFlow sederhana. Mari buat grafik komputasi yang mengalikan dua angka.
Selama contoh, kita akan mengalikan X_1 dan X_2. Tensorflow akan membuat node untuk menghubungkan operasi. Dalam contoh kita, ini disebut perkalian. Saat grafik ditentukan, mesin komputasi Tensorflow akan mengalikan X_1 dan X_2.
Contoh TensorFlow
Terakhir, kita akan menjalankan sesi TensorFlow yang akan menjalankan grafik komputasi dengan nilai X_1 dan X_2 dan mencetak hasil perkalian.
Mari kita tentukan node input X_1 dan X_2. Saat kita membuat node di Tensorflow, kita harus memilih node yang akan dibuat. Node X1 dan X2 akan menjadi node placeholder. Placeholder memberikan nilai baru setiap kali kita membuat perhitungan. Kami akan membuatnya sebagai node placeholder titik TF.
Langkah 1: Tentukan variabelnya
X_1 = tf.placeholder(tf.float32, name = "X_1")X_2 = tf.placeholder(tf.float32, name = "X_2")
Saat kita membuat node placeholder, kita harus meneruskan tipe data yang akan kita tambahkan di sini sehingga kita bisa menggunakan tipe data floating-point, mari gunakan tf.float32. Kita juga perlu memberi nama pada simpul ini. Nama ini akan muncul saat kita melihat visualisasi grafis model kita. Mari beri nama node ini X_1 dengan memasukkan parameter bernama name dengan nilai X_1 dan sekarang mari kita definisikan X_2 dengan cara yang sama. X_2.
Langkah 2: Tentukan perhitungannya
multiply = tf.multiply(X_1, X_2, name = "multiply")
Sekarang kita dapat menentukan node yang melakukan operasi perkalian. Di Tensorflow kita bisa melakukannya dengan membuat node tf.multiply.
Kita akan meneruskan simpul X_1 dan X_2 ke simpul perkalian. Ini memberitahu tensorflow untuk menghubungkan node tersebut dalam grafik komputasi, jadi kami memintanya untuk menarik nilai dari x dan y dan mengalikan hasilnya. Mari kita beri nama perkalian pada simpul perkalian. Ini adalah definisi keseluruhan untuk grafik komputasi sederhana kami.
Langkah 3: Jalankan operasi
Untuk menjalankan operasi dalam grafik, kita harus membuat sesi. Di Tensorflow, ini dilakukan oleh tf.Session (). Sekarang kita memiliki sesi, kita dapat meminta sesi untuk menjalankan operasi pada grafik komputasi kita dengan memanggil sesi. Untuk menjalankan komputasi, kita perlu menggunakan run.
Ketika operasi penambahan berjalan, akan terlihat bahwa ia perlu mengambil nilai dari node X_1 dan X_2, jadi kita juga perlu memasukkan nilai untuk X_1 dan X_2. Kita bisa melakukannya dengan menyediakan parameter bernama feed_dict. Kami meneruskan nilai 1,2,3 untuk X_1 dan 4,5,6 untuk X_2.
Kami mencetak hasil dengan print (result). Kita harus melihat 4, 10 dan 18 untuk 1x4, 2x5 dan 3x6
X_1 = tf.placeholder(tf.float32, name = "X_1")X_2 = tf.placeholder(tf.float32, name = "X_2")multiply = tf.multiply(X_1, X_2, name = "multiply")with tf.Session() as session:result = session.run(multiply, feed_dict={X_1:[1,2,3], X_2:[4,5,6]})print(result)
[ 4. 10. 18.]
Opsi untuk Memuat Data ke TensorFlow
Langkah pertama sebelum melatih algoritme pembelajaran mesin adalah memuat data. Ada dua cara umum untuk memuat data:
1. Muat data ke dalam memori: Ini adalah metode paling sederhana. Anda memuat semua data Anda ke dalam memori sebagai satu larik. Anda dapat menulis kode Python. Baris kode ini tidak terkait dengan Tensorflow.
2. Pipeline data Tensorflow. Tensorflow memiliki API bawaan yang membantu Anda memuat data, menjalankan operasi, dan memasukkan algoritme machine learning dengan mudah. Metode ini bekerja dengan sangat baik terutama jika Anda memiliki kumpulan data yang besar. Misalnya, rekaman gambar dikenal sangat besar dan tidak cocok dengan memori. Pipeline data mengelola memori itu sendiri
Solusi apa yang digunakan?
Muat data ke dalam memori
Jika dataset Anda tidak terlalu besar, yaitu kurang dari 10 gigabyte, Anda dapat menggunakan metode pertama. Data bisa masuk ke dalam memori. Anda dapat menggunakan pustaka terkenal yang disebut Pandas untuk mengimpor file CSV. Anda akan mempelajari lebih lanjut tentang panda di tutorial berikutnya.
Muat data dengan pipeline Tensorflow
Metode kedua berfungsi paling baik jika Anda memiliki kumpulan data yang besar. Misalnya, jika Anda memiliki kumpulan data 50 gigabyte, dan komputer Anda hanya memiliki memori 16 gigabyte, maka mesin akan macet.
Dalam situasi ini, Anda perlu membuat pipeline Tensorflow. Pipeline akan memuat data dalam batch, atau potongan kecil. Setiap batch akan dikirim ke pipeline dan siap untuk pelatihan. Membangun pipeline adalah solusi yang sangat baik karena memungkinkan Anda menggunakan komputasi paralel. Artinya, Tensorflow akan melatih model di beberapa CPU. Ini mendorong komputasi dan izin untuk melatih jaringan saraf yang kuat.
Anda akan melihat di tutorial berikutnya tentang cara membuat pipeline yang signifikan untuk memberi makan jaringan neural Anda.
Singkatnya, jika Anda memiliki kumpulan data kecil, Anda dapat memuat data dalam memori dengan pustaka Pandas.
Jika Anda memiliki kumpulan data yang besar dan ingin menggunakan banyak CPU, Anda akan lebih nyaman bekerja dengan pipeline Tensorflow.
Buat pipeline Tensorflow
Pada contoh sebelumnya, kami menambahkan tiga nilai untuk X_1 dan X_2 secara manual. Sekarang kita akan melihat cara memuat data ke Tensorflow.
Langkah 1) Buat data
Pertama-tama, mari gunakan pustaka numpy untuk menghasilkan dua nilai acak.
import numpy as npx_input = np.random.sample((1,2))print(x_input)
[[0.8835775 0.23766977]]
Langkah 2) Buat placeholder
Seperti pada contoh sebelumnya, kita membuat placeholder dengan nama X. Kita perlu menentukan bentuk tensor secara eksplisit. Dalam kasus ini, kami akan memuat array dengan hanya dua nilai. Kita bisa menulis bentuk sebagai shape = [1,2]
# using a placeholderx = tf.placeholder(tf.float32, shape=[1,2], name = 'X')
Langkah 3) Tentukan metode dataset
selanjutnya, kita perlu menentukan Dataset tempat kita dapat mengisi nilai placeholder x. Kita perlu menggunakan metode tf.data.Dataset.from_tensor_slices
dataset = tf.data.Dataset.from_tensor_slices(x)
Langkah 4) Buat pipa
Pada langkah keempat, kita perlu menginisialisasi pipeline tempat data akan mengalir. Kita perlu membuat iterator dengan make_initializable_iterator. Kami menamakannya iterator. Kemudian kita perlu memanggil iterator ini untuk memberi makan batch data berikutnya, get_next. Kami menamai langkah ini get_next. Perhatikan bahwa dalam contoh kami, hanya ada satu kumpulan data dengan hanya dua nilai.
iterator = dataset.make_initializable_iterator()get_next = iterator.get_next()
Langkah 5) Jalankan operasi
Langkah terakhir mirip dengan contoh sebelumnya. Kami memulai sesi, dan kami menjalankan iterator operasi. Kami memberi makan feed_dict dengan nilai yang dihasilkan oleh numpy. Kedua nilai ini akan mengisi tempat penampung x. Kemudian kami menjalankan get_next untuk mencetak hasilnya.
with tf.Session() as sess:# feed the placeholder with datasess.run(iterator.initializer, feed_dict={ x: x_input })print(sess.run(get_next)) # output [ 0.52374458 0.71968478]
[0.8835775 0.23766978]
Ringkasan
Arti TensorFlow: TensorFlow adalah library deep learning paling terkenal beberapa tahun terakhir ini. Praktisi yang menggunakan TensorFlow dapat membuat struktur deep learning apa pun, seperti CNN, RNN, atau jaringan neural buatan sederhana.
TensorFlow banyak digunakan oleh akademisi, startup, dan perusahaan besar. Google menggunakan TensorFlow di hampir semua produk harian Google termasuk Gmail, Foto, dan Mesin Pencari Google.
Tim Google Brain mengembangkan TensorFlow untuk mengisi jarak antara peneliti dan developer produk. Pada 2015, TensorFlow dibuat untuk publik; popularitasnya berkembang pesat. Saat ini, TensorFlow adalah library deep learning dengan repositori paling banyak di GitHub.
Praktisi menggunakan Tensorflow karena mudah diterapkan dalam skala besar. Itu dibangun untuk bekerja di cloud atau di perangkat seluler seperti iOs dan Android.
Tensorflow bekerja dalam satu sesi. Setiap sesi ditentukan oleh grafik dengan perhitungan yang berbeda. Contoh sederhananya adalah mengalikan dengan angka. Di Tensorflow, diperlukan tiga langkah:
- Tentukan variabelnya
X_1 = tf.placeholder(tf.float32, name = "X_1")X_2 = tf.placeholder(tf.float32, name = "X_2")
- Tentukan penghitungannya
multiply = tf.multiply(X_1, X_2, name = "multiply")
- Jalankan operasi
with tf.Session() as session:result = session.run(multiply, feed_dict={X_1:[1,2,3], X_2:[4,5,6]})print(result)
Salah satu praktik umum di Tensorflow adalah membuat pipeline untuk memuat data. Jika Anda mengikuti lima langkah ini, Anda akan dapat memuat data ke TensorFLow
- Buat datanya
import numpy as npx_input = np.random.sample((1,2))print(x_input)
- Buat placeholder
x = tf.placeholder(tf.float32, shape=[1,2], name = 'X')
- Tentukan metode set data
dataset = tf.data.Dataset.from_tensor_slices(x)
- Buat jalur pipa
iterator = dataset.make_initializable_iterator() get_next = iterator.get_next()
- Jalankan programnya
with tf.Session() as sess:sess.run(iterator.initializer, feed_dict={ x: x_input })print(sess.run(get_next))