Tutorial TensorFlow - Pembelajaran Dalam Menggunakan TensorFlow



Tutorial TensorFlow adalah blog ketiga dalam siri ini. Ia merangkumi semua asas TensorFlow. Ia juga membincangkan bagaimana membuat model linear sederhana.

Saya telah merancang tutorial TensorFlow ini untuk profesional dan peminat yang berminat untuk menerapkan Algoritma Pembelajaran Dalam menggunakan TensorFlow untuk menyelesaikan pelbagai masalah. TensorFlow adalah perpustakaan pembelajaran mendalam sumber terbuka yang berdasarkan konsep grafik aliran data untuk model bangunan. Ia membolehkan anda membuat rangkaian saraf berskala besar dengan banyak lapisan.Mempelajari penggunaan perpustakaan ini juga merupakan bahagian asas dari .Berikut adalah topik yang akan dibincangkan dalam blog tutorial TensorFlow ini:

  • Apa itu TensorFlow
  • Asas Kod TensorFlow
  • TensorFlow UseCase

Apa itu Tensor?

Dalam tutorial TensorFlow ini, sebelum membincangkan TensorFlow, mari kita fahami terlebih dahulu apa itu tensor . Tensor tidak lain hanyalah de facto untuk mewakili data dalam pembelajaran mendalam.





Tensors - TensorFlow Tutorial - EdurekaSeperti yang ditunjukkan dalam gambar di atas, tensor hanyalah tatasusunan multidimensi, yang membolehkan anda mewakili data yang mempunyai dimensi yang lebih tinggi. Secara amnya, Deep Learning anda berurusan dengan set data dimensi tinggi di mana dimensi merujuk kepada pelbagai ciri yang terdapat dalam set data. Sebenarnya, nama 'TensorFlow' berasal dari operasi yang dilakukan oleh rangkaian saraf pada tensor. Ini adalah aliran tegangan. Oleh kerana, anda telah memahami apa itu tensor, mari kita teruskan dalam tutorial TensorFlow ini dan faham - apa itu TensorFlow?

Apa itu TensorFlow?

TensorFlow adalah perpustakaan berdasarkan Python yang menyediakan pelbagai jenis fungsi untuk melaksanakan Model Pembelajaran Dalam. Seperti yang dibincangkan sebelumnya, istilah TensorFlow terdiri daripada dua istilah - Tensor & Flow:



Dalam TensorFlow, istilah tensor merujuk kepada perwakilan data sebagai tatasusunan multi-dimensi sedangkan istilah aliran merujuk kepada rangkaian operasi yang dilakukan seseorang pada tensor seperti yang ditunjukkan dalam gambar di atas.

Sekarang kita telah membahas latar belakang TensorFlow yang cukup.



Selanjutnya, dalam tutorial TensorFlow ini kita akan membincangkan mengenai asas-asas kod TensorFlow.

Tutorial TensorFlow: Asas Kod

Pada dasarnya, keseluruhan proses penulisan program TensorFlow melibatkan dua langkah:

  1. Membina Graf Pengiraan
  2. Menjalankan Graf Pengiraan

Izinkan saya menerangkan dua langkah di atas satu demi satu:

1. Membina Graf Pengiraan

Jadi, apakah graf pengiraan? Nah, grafik komputasi adalah rangkaian operasi TensorFlow yang disusun sebagai nod dalam grafik. Setiap nod mengambil 0 atau lebih tensor sebagai input dan menghasilkan tensor sebagai output. Izinkan saya memberi anda contoh grafik komputasi ringkas yang terdiri daripada tiga nod - ke , b & c seperti yang ditunjukkan di bawah:

Penjelasan Graf Pengiraan Di Atas:

  • Nod tetapdigunakan untuk menyimpan nilai tetap kerana memerlukan input sifar, tetapi menghasilkan nilai yang disimpan sebagai output. Dalam contoh di atas, a dan b adalah nod tetap dengan nilai 5 dan 6 masing-masing.

  • Node c mewakili operasi mengalikan nod malar a dengan b. Oleh itu, melaksanakan node c akan menghasilkan pendaraban kon node a & b.

Pada asasnya, seseorang dapat memikirkan grafik komputasi sebagai kaedah alternatif untuk mengkonseptualisasikan pengiraan matematik yang berlaku dalam program TensorFlow. Operasi yang ditugaskan ke node yang berbeza dari Grafik Komputasi dapat dilakukan secara selari, dengan itu, memberikan prestasi yang lebih baik dari segi pengiraan.

Di sini kami hanya menerangkan pengiraannya, ia tidak menghitung apa-apa, ia tidak mempunyai nilai apa pun, ia hanya menentukan operasi yang dinyatakan dalam kod anda.

2. Menjalankan Graf Pengiraan

Mari kita ambil contoh grafik komputasi sebelumnya dan memahami cara melaksanakannya. Berikut adalah kod dari contoh sebelumnya:

Contoh 1:

import tensorflow sebagai tf # Bina graf a = tf.constant (5.0) b = tf.constant (6.0) c = a * b

Sekarang, untuk mendapatkan output node c, kita perlu menjalankan graf komputasi dalam a sesi . Sesi meletakkan operasi grafik ke Peranti, seperti CPU atau GPU, dan menyediakan kaedah untuk melaksanakannya.

program siri fibonacci di java

Sesi merangkumi kawalan dan keadaan waktu operasi TensorFlow, iaitu menyimpan maklumat mengenai urutan di mana semua operasi akan dilakukan dan meneruskan hasil operasi yang sudah dikira ke operasi seterusnya dalam perancangan. Izinkan saya menunjukkan kepada anda cara menjalankan grafik komputasi di atas dalam sesi (Penjelasan setiap baris kod telah ditambahkan sebagai komen):

# Buat objek sesi sess = tf. Sesi () # Jalankan grafik dalam sesi dan simpan output ke pemboleh ubah output_c = sess.run (c) # Cetak output cetakan node c (output_c) # Tutup sesi ke kosongkan beberapa sumber sess.close ()
 Pengeluaran: 30

Jadi, ini semua berkaitan dengan sesi dan menjalankan grafik komputasi di dalamnya. Sekarang, mari kita bincangkan pemboleh ubah dan placeholder yang akan kita gunakan secara meluas semasa membina model pembelajaran mendalam menggunakan TensorFlow.

Pemalar, Pemegang Tempat dan Pembolehubah

Di TensorFlow, pemalar, tempat letak dan pemboleh ubah digunakan untuk mewakili parameter yang berbeza dari model pembelajaran mendalam. Oleh kerana, saya telah membincangkan pemalar lebih awal, saya akan bermula dengan penempatan.

Pemegang tempat:

Pemalar TensorFlow membolehkan anda menyimpan nilai tetapi, bagaimana jika, anda mahu nod anda mengambil input semasa dijalankan? Untuk fungsi seperti ini, tempat letak digunakan yang membolehkan grafik anda mengambil input luaran sebagai parameter. Pada asasnya, placeholder adalah janji untuk memberikan nilai kemudian atau semasa runtime. Izinkan saya memberi anda contoh untuk menjadikan perkara lebih mudah:

import tensorflow sebagai tf # Membuat tempat letak a = tf. pemegang tempat (tf.float32) b = tf. placeholder (tf.float32) # Menetapkan operasi pendaraban w.r.t. a & ampamp b ke simpul mul mul = a * b # Buat objek sesi sess = tf.Sesi () # Melaksanakan mul dengan meneruskan nilai [1, 3] [2, 4] untuk a dan b masing-masing output = sess.run ( mul, {a: [1,3], b: [2, 4]}) cetak ('Mengalikan ab:', output)
 Pengeluaran: [2. 12.]

Perkara yang perlu diingat pemegang tempat:

  • Pemegang tempat tidak diinisialisasi dan tidak mengandungi data.
  • Seseorang mesti memberikan input atau suapan kepada placeholder yang dipertimbangkan semasa waktu berjalan.
  • Melaksanakan placeholder tanpa input menghasilkan ralat.

Sekarang, marilah kita maju dan memahami - apakah pemboleh ubah?

Pemboleh ubah

Dalam pembelajaran mendalam, tempat letak digunakan untuk mengambil input sewenang-wenang dalam model atau grafik anda. Selain mengambil input, anda juga perlu mengubah suai grafik sehingga dapat menghasilkan output baru w.r.t. input yang sama. Untuk ini, anda akan menggunakan pemboleh ubah. Ringkasnya, pemboleh ubah membolehkan anda menambahkan parameter atau simpul tersebut ke grafik yang dapat dilatih iaitu nilainya dapat diubah dalam jangka waktu tertentu. Pemboleh ubah ditentukan dengan memberikan nilai awal dan jenisnya seperti yang ditunjukkan di bawah:

var = tf.Variabel ([0.4], dtype = tf.float32)

Catatan:

  • Sekiranya anda belum memberikan jenis data secara eksplisit, TensorFlow akan menyimpulkan jenis pemalar / pemboleh ubah dari nilai yang dimulakan.
  • TensorFlow mempunyai banyak jenis datanya sendiri seperti tf.float32 , tf.int32 dan lain-lain. Anda boleh merujuk semuanya di sini .

Pemalar dimulakan semasa anda memanggil tf.konsisten , dan nilai mereka tidak akan pernah berubah. Sebaliknya, pemboleh ubah tidak diinisialisasi semasa anda memanggil t. Berubah . Untuk memulakan semua pemboleh ubah dalam program TensorFlow, anda mesti secara eksplisit memanggil operasi khas seperti gambar di bawah:

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

Sentiasa ingat bahawa pemboleh ubah mesti diinisialisasi sebelum grafik digunakan untuk pertama kalinya.

Catatan: Pemboleh ubah TensorFlow adalah penyangga dalam memori yang mengandungi tensor, tetapi tidak seperti tensor biasa yang hanya ditunjukkan ketika grafik dijalankan dan segera dihapus sesudahnya, pemboleh ubah bertahan dalam pelbagai pelaksanaan grafik.

Sekarang kita telah merangkumi asas-asas TensorFlow yang cukup, mari kita teruskan dan memahami bagaimana menerapkan model regresi linear menggunakan TensorFlow.

Model Regresi Linear Menggunakan TensorFlow

Model Regresi Linear digunakan untuk meramalkan nilai pemboleh ubah yang tidak diketahui (Pembolehubah Bergantung) dari nilai yang diketahui dari pemboleh ubah lain (Pembolehubah Bebas) menggunakan persamaan regresi linear seperti yang ditunjukkan di bawah:

Oleh itu, untuk membuat model linear, anda memerlukan:

  1. Pembolehubah Bergantung atau Keluaran (Y)
  2. Pemboleh ubah cerun (w)
  3. Y - Pintas atau Bias (b)
  4. Pembolehubah Bebas atau Input (X)

Oleh itu, marilah kita mula membina model linear menggunakan TensorFlow:

Salin kod dengan mengklik butang yang diberikan di bawah:

# Membuat pemboleh ubah untuk kemiringan parameter (W) dengan nilai awal sebagai 0,4 W = tf.Variabel ([. 4], tf.float32) #Membuat pemboleh ubah untuk bias parameter (b) dengan nilai awal sebagai -0,4 b = tf.Variabel ( [-0.4], tf.float32) # Membuat ruang letak untuk memberikan input atau pemboleh ubah bebas, dilambangkan dengan xx = tf.placeholder (tf.float32) # Persamaan Regresi Linear linear_model = W * x + b # Memulakan semua pemboleh ubah sess = tf.Sesi () init = tf.global_variables_initializer () sess.run (init) # Menjalankan model regresi untuk mengira output untuk mencetak nilai x yang disediakan (sess.run (linear_model {x: [1, 2, 3, 4]})))

Pengeluaran:

[0. 0.40000001 0.80000007 1.20000005]

Kod yang dinyatakan di atas hanya mewakili idea asas di sebalik pelaksanaan model regresi iaitu bagaimana anda mengikuti persamaan garis regresi untuk mendapatkan output w.r.t. satu set nilai input. Tetapi, ada dua perkara lagi yang perlu ditambahkan dalam model ini untuk menjadikannya model regresi lengkap:

  • Pertama, kita perlu menyediakan mekanisme yang membolehkan model kita melatih dirinya secara automatik berdasarkan set input dan output masing-masing.
  • Perkara kedua yang kita perlukan adalah mengesahkan model terlatih kita dengan membandingkan outputnya dengan output yang diinginkan atau sasaran berdasarkan set nilai x yang diberikan.

Sekarang mari kita fahami bagaimana saya boleh memasukkan fungsi yang dinyatakan di atas ke dalam kod saya untuk model regresi.

Fungsi Kehilangan - Pengesahan Model

Fungsi kerugian mengukur sejauh mana keluaran model semasa daripada output yang dikehendaki atau sasaran. Saya akan menggunakan fungsi kerugian yang paling biasa digunakan untuk model regresi linier saya yang disebut sebagai Jumlah Kesalahan Kuadrat atau SSE. SSE dikira w.r.t. output model (diwakili oleh linear_model) dan output yang dikehendaki atau sasaran (y) sebagai:

y = tf.placeholder (tf.float32) error = linear_model - y squared_errors = tf.square (error) loss = tf.reduce_sum (squared_errors) print (sess.run (kerugian, {x: [1,2,3,4 ], y: [2, 4, 6, 8]})
 Pengeluaran: 90.24

Seperti yang anda lihat, kami mendapat nilai kerugian yang tinggi. Oleh itu, kita perlu menyesuaikan bobot kita (W) dan bias (b) supaya dapat mengurangkan ralat yang kita terima.

tf.train API - Melatih Model

TensorFlow menyediakan pengoptimum yang perlahan-lahan mengubah setiap pemboleh ubah untuk mengurangkan fungsi kehilangan atau kesalahan. Pengoptimum paling mudah adalah keturunan kecerunan . Ia mengubah setiap pemboleh ubah mengikut besarnya turunan kerugian berkenaan dengan pemboleh ubah tersebut.

perbezaan antara chef dan ansible

#Membuat contoh pengoptimum keturunan gradien pengoptimum = tf.train.GradientDescentOptimizer (0.01) train = optimizer.minimize (loss) for i in range (1000): sess.run (train, {x: [1, 2, 3, 4], y: [2, 4, 6, 8]}) cetak (sess.run ([W, b]))
 Pengeluaran: [array ([1.99999964], dtype = float32), array ([9.86305167e-07], dtype = float32)]

Jadi, ini adalah bagaimana anda membuat model linier menggunakan TensorFlow dan melatihnya untuk mendapatkan output yang diinginkan.

Sekarang setelah anda mengetahui tentang Pembelajaran Dalam, lihat oleh Edureka, sebuah syarikat pembelajaran dalam talian yang dipercayai dengan rangkaian lebih daripada 250,000 pelajar berpuas hati yang tersebar di seluruh dunia. Kursus Latihan Edureka Deep Learning with TensorFlow Certification membantu pelajar menjadi pakar dalam latihan dan mengoptimumkan rangkaian saraf asas dan konvolusional menggunakan projek dan tugasan masa nyata bersama dengan konsep seperti fungsi SoftMax, Auto-encoder Neural Networks, Restricted Boltzmann Machine (RBM).

Ada soalan untuk kami? Sila sebutkan di bahagian komen dan kami akan menghubungi anda.