Apa yang Anda ketahui tentang TensorFlow?


Apa yang Anda ketahui tentang TensorFlow?

TensorFlow memungkinkan pengembang untuk membuat grafik aliran data — struktur yang menggambarkan bagaimana data bergerak melalui grafik, atau serangkaian node pemrosesan. Setiap node dalam grafik mewakili operasi matematika, dan setiap koneksi atau tepi antara node adalah array data multidimensi, atau tensor.TensorFlow menyediakan semua ini untuk programmer dengan bahasa Python. Python mudah dipelajari dan bekerja dengan, dan menyediakan cara mudah untuk mengekspresikan bagaimana abstraksi tingkat tinggi dapat digabungkan bersama. Node dan tensor dalam TensorFlow adalah objek Python, dan aplikasi TensorFlow sendiri adalah aplikasi Python.

Operasi matematika yang sebenarnya, bagaimanapun, tidak dilakukan dengan Python. Perpustakaan transformasi yang tersedia melalui TensorFlow ditulis sebagai binari C ++ kinerja tinggi. Python hanya mengarahkan lalu lintas di antara potongan-potongan, dan menyediakan abstraksi pemrograman tingkat tinggi untuk menyatukan mereka.

Aplikasi TensorFlow dapat dijalankan pada sebagian besar target yang nyaman: mesin lokal, cluster di cloud, perangkat iOS dan Android, CPU atau GPU. Jika Anda menggunakan cloud Google sendiri, Anda dapat menjalankan TensorFlow pada silikon TensorFlow Processing Unit (TPU) kustom Google untuk akselerasi lebih lanjut. Model yang dihasilkan dibuat oleh TensorFlow, dapat digunakan pada sebagian besar perangkat apa pun di mana mereka akan digunakan untuk melayani prediksi.
TensorFlow 2.0, dirilis pada Oktober 2019, mengubah kerangka kerja dalam banyak cara berdasarkan umpan balik pengguna, untuk membuatnya lebih mudah untuk bekerja dengannya (mis., Dengan menggunakan API Keras yang relatif sederhana untuk pelatihan model) dan lebih banyak pemain. Pelatihan yang didistribusikan lebih mudah dijalankan berkat API baru, dan dukungan untuk TensorFlow Lite memungkinkan untuk menyebarkan model pada berbagai platform yang lebih besar. Namun, kode yang ditulis untuk versi TensorFlow sebelumnya harus ditulis ulang — terkadang hanya sedikit, terkadang signifikan — untuk memanfaatkan fitur TensorFlow 2.0 baru secara maksimal.

Manfaat tunggal terbesar yang diberikan TensorFlow untuk pengembangan pembelajaran mesin adalah abstraksi. Alih-alih berurusan dengan rincian rumit dari penerapan algoritma, atau mencari tahu cara yang tepat untuk menghalangi output dari satu fungsi ke input yang lain, pengembang dapat fokus pada logika keseluruhan aplikasi. TensorFlow menangani detail di balik layar. TensorFlow menawarkan kemudahan tambahan bagi pengembang yang perlu melakukan debug dan mendapatkan introspeksi ke dalam aplikasi TensorFlow. Mode eksekusi yang bersemangat memungkinkan Anda mengevaluasi dan memodifikasi setiap operasi grafik secara terpisah dan transparan, alih-alih membangun keseluruhan grafik sebagai objek buram tunggal dan mengevaluasi semuanya sekaligus. Suite visualisasi TensorBoard memungkinkan Anda memeriksa dan membuat profil cara grafik dijalankan dengan dashboard interaktif berbasis web.

TensorFlow juga mendapatkan banyak keuntungan dari dukungan pakaian komersial A-list di Google. Google tidak hanya mendorong laju perkembangan pesat di belakang proyek, tetapi menciptakan banyak penawaran signifikan di sekitar TensorFlow yang membuatnya lebih mudah untuk digunakan dan lebih mudah digunakan: silikon TPU yang disebutkan di atas untuk kinerja yang dipercepat di cloud Google; hub online untuk berbagi model yang dibuat dengan kerangka kerja; inkarnasi kerangka kerja yang sesuai dengan browser dan mobile; dan banyak lagi.

Satu peringatan: Beberapa detail implementasi TensorFlow membuatnya sulit untuk mendapatkan hasil pelatihan model yang sepenuhnya deterministik untuk beberapa pekerjaan pelatihan. Kadang-kadang model yang dilatih pada satu sistem akan sedikit berbeda dari model yang dilatih di sistem lain, bahkan ketika mereka diberi makan data yang sama persis. Alasannya licin — mis., Bagaimana angka acak diunggulkan dan di mana, atau perilaku non-deterministik tertentu saat menggunakan GPU). Yang mengatakan, adalah mungkin untuk mengatasi masalah-masalah itu, dan tim TensorFlow sedang mempertimbangkan lebih banyak kontrol untuk memengaruhi determinisme dalam alur kerja.

TensorFlow bersaing dengan banyak kerangka pembelajaran mesin lainnya. PyTorch, CNTK, dan MXNet adalah tiga kerangka kerja utama yang menangani banyak kebutuhan yang sama. Di bawah ini saya perhatikan di mana mereka menonjol dan berhadapan dengan TensorFlow.

  • PyTorch, selain dibangun dengan Python, dan memiliki banyak kemiripan lainnya dengan TensorFlow: komponen akselerasi perangkat keras di bawah kap, model pengembangan yang sangat interaktif yang memungkinkan pekerjaan desain-sambil-berjalan, dan banyak komponen berguna sudah termasuk. PyTorch umumnya merupakan pilihan yang lebih baik untuk pengembangan cepat dari proyek yang perlu dijalankan dan berjalan dalam waktu singkat, tetapi TensorFlow menang untuk proyek yang lebih besar dan alur kerja yang lebih kompleks.
  • CNTK, Microsoft Cognitive Toolkit, seperti TensorFlow menggunakan struktur grafik untuk menggambarkan aliran data, tetapi sebagian besar berfokus pada pembuatan jaringan saraf pembelajaran yang mendalam. CNTK menangani banyak pekerjaan jaringan saraf lebih cepat, dan memiliki seperangkat API yang lebih luas (Python, C ++, C #, Java). Tapi CNTK saat ini tidak mudah dipelajari atau digunakan sebagai TensorFlow.
    Apache MXNet, diadopsi oleh Amazon sebagai kerangka kerja pembelajaran mendalam utama pada AWS, dapat skala hampir secara linear di beberapa GPU dan beberapa mesin. Ini juga mendukung beragam API bahasa — Python, C ++, Scala, R, JavaScript, Julia, Perl, Go — meskipun API asli tidak senyaman untuk digunakan dengan TensorFlow.
Ringkasan

What is TensorFlow? The machine learning library explained | InfoWorld