TensorFlow

Memulai TensorFlow

Memulai TensorFlow
TensorFlow adalah anak otak Google dan pada intinya, ini adalah perpustakaan untuk komputasi numerik. Itu ditulis dalam C/C++ dan memiliki API yang sangat fleksibel. API ini dapat dihubungkan dengan front-end Python sehingga Anda dapat menulis potongan kecil kode Python untuk memecahkan masalah yang rumit. API yang fleksibel dan konsisten juga memungkinkan pengembang untuk menggunakan kode front-end yang sama untuk berjalan di berbagai platform seperti GPU Nvidia, CPU tujuan umum dan bahkan perangkat seluler dan tertanam yang masing-masing memiliki implementasi yang sangat berbeda di back-end.

TensorFlow telah menemukan kegunaan yang sangat besar di bidang pembelajaran mesin, tepatnya karena pembelajaran mesin melibatkan banyak penguraian angka dan digunakan sebagai teknik pemecahan masalah umum. Dan meskipun kita akan berinteraksi dengannya menggunakan Python, ia memiliki ujung depan untuk bahasa lain seperti Go, Node.js dan bahkan C#.

Tensorflow seperti kotak hitam yang menyembunyikan semua seluk-beluk matematika di dalamnya dan pengembang hanya memanggil fungsi yang tepat untuk memecahkan masalah. Tapi masalah apa??

Pembelajaran Mesin (ML)

Misalkan Anda mendesain bot untuk bermain catur. Karena cara catur dirancang, cara bidak bergerak, dan tujuan permainan yang terdefinisi dengan baik, sangat mungkin untuk menulis sebuah program yang akan memainkan permainan dengan sangat baik. Faktanya, itu akan mengakali seluruh ras manusia dalam catur. Itu akan tahu persis gerakan apa yang perlu dilakukan mengingat keadaan semua bagian di papan.

Namun, program seperti itu hanya bisa bermain catur. Aturan permainan dimasukkan ke dalam logika kode dan semua yang dilakukan program adalah mengeksekusi logika itu secara ketat dan lebih akurat daripada yang bisa dilakukan manusia mana pun. Ini bukan algoritme tujuan umum yang dapat Anda gunakan untuk mendesain bot game apa pun.

Dengan pembelajaran mesin, paradigma bergeser dan algoritme menjadi semakin umum.

Idenya sederhana, dimulai dengan mendefinisikan masalah klasifikasi. Misalnya, Anda ingin mengotomatiskan proses mengidentifikasi spesies laba-laba. Spesies yang Anda ketahui adalah berbagai kelas (jangan dikelirukan dengan kelas taksonomi)  dan tujuan algoritme ini adalah mengurutkan gambar baru yang tidak dikenal ke dalam salah satu kelas ini.

Di sini, langkah pertama bagi manusia adalah menentukan ciri-ciri berbagai laba-laba individu. Kami akan menyediakan data tentang panjang, lebar, massa tubuh, dan warna masing-masing laba-laba beserta spesiesnya:

Panjangnya Lebar Massa Warna Tekstur Jenis
5 3 12 cokelat halus Ayah kaki panjang
10 8 28 Hitam kecoklatan berbulu Tarantula

Memiliki banyak koleksi  data laba-laba individual tersebut akan digunakan untuk 'melatih' algoritme dan kumpulan data serupa lainnya akan digunakan untuk menguji algoritme guna melihat seberapa baik kinerjanya terhadap informasi baru yang belum pernah ditemui sebelumnya, tetapi yang sudah kita ketahui sebelumnya. jawaban untuk.

Algoritme akan dimulai secara acak random. Artinya, setiap laba-laba terlepas dari fitur-fiturnya akan diklasifikasikan sebagai salah satu spesies. Jika ada 10 spesies berbeda dalam kumpulan data kami, maka algoritma naif ini akan diberikan klasifikasi yang benar kira-kira 1/10 kali karena keberuntungan belaka.

Tapi kemudian aspek pembelajaran mesin akan mulai mengambil alih. Itu akan mulai mengaitkan fitur tertentu dengan hasil tertentu. Misalnya, laba-laba berbulu kemungkinan besar adalah tarantula, begitu juga laba-laba yang lebih besar. Jadi setiap kali, laba-laba baru yang besar dan berbulu muncul, kemungkinan besar dia adalah tarantula. Perhatikan, kami masih bekerja dengan probabilitas, ini karena kami secara inheren bekerja dengan algoritme probabilistik.

Bagian pembelajaran bekerja dengan mengubah probabilitas. Awalnya, algoritma dimulai dengan secara acak menetapkan label 'spesies' untuk individu dengan membuat korelasi acak seperti, menjadi 'berbulu' dan menjadi 'ayah kaki panjang'. Ketika itu membuat korelasi seperti itu dan dataset pelatihan tampaknya tidak setuju dengannya, asumsi itu dibatalkan.

Demikian pula, ketika korelasi bekerja dengan baik melalui beberapa contoh, itu semakin kuat setiap kali. Metode tersandung menuju kebenaran ini sangat efektif, berkat banyak seluk-beluk matematika yang, sebagai pemula, tidak ingin Anda khawatirkan.

TensorFlow dan latih pengklasifikasi Bunga Anda sendiri

TensorFlow mengambil ide pembelajaran mesin lebih jauh. Dalam contoh di atas, Anda bertanggung jawab untuk menentukan ciri-ciri yang membedakan satu spesies laba-laba dengan spesies lainnya. Kami harus mengukur laba-laba individu dengan susah payah dan membuat ratusan catatan seperti itu.

Tapi kita bisa melakukan yang lebih baik, dengan menyediakan data gambar mentah saja ke algoritme, kita dapat membiarkan algoritme menemukan pola dan memahami berbagai hal tentang gambar seperti mengenali bentuk dalam gambar, lalu memahami tekstur permukaan yang berbeda, warnanya , dan seterusnya. Ini adalah gagasan awal dari visi komputer dan Anda juga dapat menggunakannya untuk jenis input lain, seperti sinyal audio dan melatih algoritme Anda untuk pengenalan suara. Semua ini berada di bawah payung istilah 'Deep Learning' di mana pembelajaran mesin dibawa ke ekstrem logisnya.

Kumpulan gagasan umum ini kemudian dapat dispesialisasikan ketika berhadapan dengan banyak gambar bunga dan mengelompokkannya.

Dalam contoh di bawah ini kita akan menggunakan Python2.7 front-end untuk berinteraksi dengan TensorFlow dan kami akan menggunakan pip (bukan pip3) untuk menginstal TensorFlow. Dukungan Python 3 masih sedikit bermasalah.

Untuk membuat pengklasifikasi gambar Anda sendiri, menggunakan TensorFlow terlebih dahulu mari kita instal menggunakan pip:

$pip instal tensorflow

Selanjutnya, kita perlu mengkloning tensorflow-untuk-penyair-2 git repositori. Ini adalah tempat yang sangat baik untuk memulai karena dua alasan:

  1. Ini sederhana dan mudah digunakan
  2. Itu datang pra-terlatih ke tingkat tertentu. Misalnya, pengklasifikasi bunga sudah dilatih untuk memahami tekstur apa yang dilihatnya dan bentuk apa yang dilihatnya sehingga komputasinya kurang intensif.

Mari dapatkan repositori:

$git klon https://github.com/googlecodelabs/tensorflow-for-poets-2
$cd tensorflow-untuk-penyair-2

Ini akan menjadi direktori kerja kita, jadi semua perintah harus dikeluarkan dari dalamnya, mulai sekarang.

Kita masih perlu melatih algoritme untuk masalah khusus mengenali bunga, untuk itu kita membutuhkan data pelatihan, jadi mari kita dapatkan:

$curl http://download.aliran tensor.org/example_images/flower_photos.tgz
| tar xz -C tf_files

Direktori… ./tensorflow-for-poets-2/tf_files berisi satu ton gambar ini diberi label dengan benar dan siap digunakan ready. Gambar akan digunakan untuk dua tujuan berbeda:

  1. Melatih program ML
  2. Menguji program ML

Anda dapat memeriksa isi folder tf_files dan di sini Anda akan menemukan bahwa kami mempersempit menjadi hanya 5 kategori bunga, yaitu aster, tulip, bunga matahari, dandelion, dan mawar.

Melatih model

Anda dapat memulai proses pelatihan dengan terlebih dahulu menyiapkan konstanta berikut untuk mengubah ukuran semua gambar input menjadi ukuran standar, dan menggunakan arsitektur mobilenet yang ringan:

$IMAGE_SIZE=224
$ARCHITECTURE="mobilenet_0.50_$IMAGE_SIZE"

Kemudian aktifkan skrip python dengan menjalankan perintah:

skrip $python -m.melatih kembali \
--bottleneck_dir=tf_files/bottlenecks \
--how_many_training_steps=500 \
--model_dir=tf_files/models/ \
--summaries_dir=tf_files/training_summaries/"$ARCHITECTURE" \
--output_graph=tf_files/retrained_graph.pb \
--output_labels=tf_files/retrained_labels.txt \
--arsitektur="$ARSITEKTUR" \
--image_dir=tf_files/flower_photos

Meskipun ada banyak opsi yang ditentukan di sini, sebagian besar menentukan direktori data input Anda dan jumlah iterasi, serta file output tempat informasi tentang model baru akan disimpan. Ini tidak akan memakan waktu lebih dari 20 menit untuk dijalankan pada laptop biasa-biasa saja.

Setelah skrip menyelesaikan pelatihan dan pengujian, skrip akan memberi Anda perkiraan akurasi model terlatih, yang dalam kasus kami sedikit lebih tinggi dari 90%.

Menggunakan model terlatih

Anda sekarang siap menggunakan model ini untuk pengenalan gambar dari setiap gambar bunga baru. Kami akan menggunakan gambar ini:

Wajah bunga matahari hampir tidak terlihat dan ini merupakan tantangan besar bagi model kami:

Untuk mendapatkan gambar ini dari Wikimedia commons gunakan wget:

$wget https://upload.wikimedia.org/wikipedia/commons/2/28/Sunflower_head_2011_G1.jpg
$mv Bunga Matahari_head_2011_G1.jpg tf_files/tidak diketahui.jpg

Itu disimpan sebagai tidak diketahui.jpg di bawah tf_files subdirektori.

Sekarang, untuk saat ini, kita akan melihat apa yang dikatakan model kita tentang gambar ini.Untuk melakukan itu, kami memanggil label_gambar naskah:

skrip $python -m.label_image --graph=tf_files/retrained_graph.pb --
gambar=tf_files/tidak diketahui.jpg

Anda akan mendapatkan output yang mirip dengan ini:

Angka-angka di sebelah jenis bunga mewakili kemungkinan bahwa gambar kita yang tidak diketahui termasuk dalam kategori itu. Misal 98.04% yakin bahwa gambar itu adalah bunga matahari dan itu hanya 1.37% kemungkinan itu menjadi mawar.

Kesimpulan

Bahkan dengan sumber daya komputasi yang sangat biasa-biasa saja, kami melihat akurasi yang mengejutkan dalam mengidentifikasi gambar. Ini dengan jelas menunjukkan kekuatan dan fleksibilitas TensorFlow.

Dari sini, Anda dapat mulai bereksperimen dengan berbagai jenis input lain atau mencoba mulai menulis aplikasi Anda sendiri yang berbeda menggunakan Python dan TensorFlow. Jika Anda ingin mengetahui cara kerja internal pembelajaran mesin sedikit lebih baik di sini adalah cara interaktif bagi Anda untuk melakukannya.

Cara membalikkan arah gulir Mouse dan Touchpads di Windows 10
Mouse dan Panel sentuhs tidak hanya membuat komputasi menjadi mudah tetapi juga lebih efisien dan tidak memakan banyak waktu. Kami tidak dapat membaya...
Cara mengubah penunjuk Mouse dan ukuran kursor, warna & skema pada Windows 10
Penunjuk mouse dan kursor di Windows 10 adalah aspek yang sangat penting dari sistem operasi. Ini dapat dikatakan untuk sistem operasi lain juga, jadi...
Mesin Game Gratis dan Sumber Terbuka untuk Mengembangkan Game Linux
Artikel ini akan membahas daftar mesin game sumber terbuka dan gratis yang dapat digunakan untuk mengembangkan game 2D dan 3D di Linux. Ada banyak mes...