Tutorial TensorBoard: Visualisasi Grafik TensorFlow [Contoh]
Apa itu TensorBoard?
Papan Tensor adalah antarmuka yang digunakan untuk memvisualisasikan grafik dan alat lain untuk memahami, men-debug, dan mengoptimalkan model. Ini adalah alat yang menyediakan pengukuran dan visualisasi untuk alur kerja pembelajaran mesin. Ini membantu melacak metrik seperti kehilangan dan akurasi, visualisasi grafik model, penyematan proyek di ruang berdimensi lebih rendah, dll.
Visualisasi Grafik TensorFlow menggunakan Contoh Tensorboard
Gambar di bawah berasal dari grafik TensorBoard yang akan Anda buat di Tutorial TensorBoard ini. Ini adalah panel utama:

Dari gambar di bawah, Anda dapat melihat panel visualisasi grafik TensorBoard. Panel berisi tab berbeda, yang ditautkan ke tingkat informasi yang Anda tambahkan saat menjalankan model.
- skalar: Menampilkan berbagai informasi berguna selama pelatihan model
- Grafik: Tunjukkan modelnya
- Histogram: Menampilkan bobot dengan histogram
- Distribusi: Menampilkan distribusi berat
- Proyektor: Menampilkan analisis komponen utama dan algoritma T-SNE. Teknik yang digunakan untuk reduksi dimensi
Selama Tutorial TensorBoard ini, Anda akan melatih model pembelajaran mendalam yang sederhana. Anda akan mempelajari cara kerjanya di tutorial mendatang.
Jika Anda melihat grafiknya, Anda dapat memahami cara kerja model tersebut.
- Enqueue data ke model: Dorong sejumlah data yang sama dengan ukuran batch ke model, misalnya, Jumlah data feed setelah setiap iterasi
- Masukkan data ke Tensor
- Latih modelnya
- Menampilkan jumlah batch selama pelatihan. Simpan model pada disk.
Ide dasar di balik tensorboard adalah bahwa jaringan saraf dapat dikenal sebagai kotak hitam dan kita memerlukan alat untuk memeriksa apa yang ada di dalam kotak ini. Anda dapat membayangkan tensorboard sebagai senter untuk mulai menyelami jaringan saraf.
Ini membantu untuk memahami ketergantungan antar operasi, bagaimana bobot dihitung, menampilkan fungsi kerugian dan banyak informasi berguna lainnya. Saat Anda menyatukan semua informasi ini, Anda memiliki alat hebat untuk melakukan debug dan menemukan cara meningkatkan model.
Untuk memberi Anda gambaran betapa bermanfaatnya grafik TensorBoard, lihat gambar di bawah:
Jaringan saraf memutuskan cara menghubungkan "neuron" yang berbeda dan berapa banyak lapisan sebelum model dapat memprediksi suatu hasil. Setelah Anda menentukan arsitekturnya, Anda tidak hanya perlu melatih model tetapi juga metrik untuk menghitung keakuratan prediksi. Metrik ini disebut sebagai fungsi kerugian. Tujuannya adalah untuk meminimalkan fungsi kerugian. Dengan kata lain, ini berarti model tersebut membuat lebih sedikit kesalahan. Semua algoritme pembelajaran mesin akan mengulangi penghitungan berkali-kali hingga kerugian mencapai garis yang lebih datar. Untuk meminimalkan fungsi kerugian ini, Anda perlu mendefinisikan a kecepatan pembelajaran. Ini adalah kecepatan yang Anda ingin model pelajari. Jika Anda menetapkan kecepatan pembelajaran terlalu tinggi, model tidak memiliki waktu untuk mempelajari apa pun. Hal ini terjadi pada gambar kiri. Garisnya bergerak ke atas dan ke bawah, artinya model memprediksi hasilnya dengan tebakan murni. Gambar di sebelah kanan menunjukkan bahwa kerugian semakin berkurang seiring iterasi hingga kurva menjadi rata, artinya model menemukan solusi.
TensorBoard adalah alat yang hebat untuk memvisualisasikan metrik tersebut dan menyoroti potensi masalah. Jaringan saraf dapat memerlukan waktu berjam-jam hingga berminggu-minggu sebelum menemukan solusi. TensorBoard sangat sering memperbarui metrik. Dalam hal ini, Anda tidak perlu menunggu hingga akhir untuk melihat apakah model dilatih dengan benar. Anda dapat membuka TensorBoard untuk memeriksa jalannya pelatihan dan membuat perubahan yang sesuai jika diperlukan.
Bagaimana cara menggunakan TensorBoard?
Dalam tutorial ini, Anda akan mempelajari cara membuka TensorBoard dari terminal untuk MacOS dan TensorBoard baris perintah untuk Windows.
Kodenya akan dijelaskan pada tutorial selanjutnya, fokusnya di sini adalah pada TensorBoard.
Pertama, Anda perlu mengimpor perpustakaan yang akan Anda gunakan selama pelatihan
## Import the library import tensorflow as tf import numpy as np
Anda membuat datanya. Ini adalah array 10000 baris dan 5 kolom
X_train = (np.random.sample((10000,5))) y_train = (np.random.sample((10000,1))) X_train.shape
Keluaran
(10000, 5)
Kode di bawah ini mengubah data dan membuat model.
Perhatikan bahwa kecepatan pemelajaran sama dengan 0.1. Jika Anda mengubah angka ini ke nilai yang lebih tinggi, model tidak akan menemukan solusi. Inilah yang terjadi di sisi kiri gambar di atas.
Selama sebagian besar Tutorial TensorFlow, Anda akan menggunakan penaksir TensorFlow. Ini adalah TensorFlow API yang berisi semua perhitungan matematis.
Untuk membuat file log, Anda perlu menentukan jalurnya. Hal ini dilakukan dengan argumen model_dir.
Pada contoh TensorBoard di bawah, Anda menyimpan model di dalam direktori kerja, yaitu tempat Anda menyimpan file notebook atau python. Di dalam jalur ini, TensorFlow akan membuat folder bernama train dengan nama folder turunan linreg.
feature_columns = [ tf.feature_column.numeric_column('x', shape=X_train.shape[1:])] DNN_reg = tf.estimator.DNNRegressor(feature_columns=feature_columns, # Indicate where to store the log file model_dir='train/linreg', hidden_units=[500, 300], optimizer=tf.train.ProximalAdagradOptimizer( learning_rate=0.1, l1_regularization_strength=0.001 ) )
Keluaran
INFO:tensorflow:Using default config. INFO:tensorflow:Using config: {'_model_dir': 'train/linreg', '_tf_random_seed': None, '_save_summary_steps': 100, '_save_checkpoints_steps': None, '_save_checkpoints_secs': 600, '_session_config': None, '_keep_checkpoint_max': 5, '_keep_checkpoint_every_n_hours': 10000, '_log_step_count_steps': 100, '_train_distribute': None, '_service': None, '_cluster_spec': <tensorflow.python.training.server_lib.ClusterSpec object at 0x1818e63828>, '_task_type': 'worker', '_task_id': 0, '_global_id_in_cluster': 0, '_master': '', '_evaluation_master': '', '_is_chief': True, '_num_ps_replicas': 0, '_num_worker_replicas': 1}
Langkah terakhir dari contoh grafik visualisasi TensorFlow ini terdiri dari melatih model. Selama pelatihan, TensorFlow menulis informasi di direktori model.
# Train the estimator train_input = tf.estimator.inputs.numpy_input_fn( x={"x": X_train}, y=y_train, shuffle=False,num_epochs=None) DNN_reg.train(train_input,steps=3000)
Keluaran
INFO:tensorflow:Calling model_fn. INFO:tensorflow:Done calling model_fn. INFO:tensorflow:Create CheckpointSaverHook. INFO:tensorflow:Graph was finalized. INFO:tensorflow:Running local_init_op. INFO:tensorflow:Done running local_init_op. INFO:tensorflow:Saving checkpoints for 1 into train/linreg/model.ckpt. INFO:tensorflow:loss = 40.060104, step = 1 INFO:tensorflow:global_step/sec: 197.061 INFO:tensorflow:loss = 10.62989, step = 101 (0.508 sec) INFO:tensorflow:global_step/sec: 172.487 INFO:tensorflow:loss = 11.255318, step = 201 (0.584 sec) INFO:tensorflow:global_step/sec: 193.295 INFO:tensorflow:loss = 10.604872, step = 301 (0.513 sec) INFO:tensorflow:global_step/sec: 175.378 INFO:tensorflow:loss = 10.090343, step = 401 (0.572 sec) INFO:tensorflow:global_step/sec: 209.737 INFO:tensorflow:loss = 10.057928, step = 501 (0.476 sec) INFO:tensorflow:global_step/sec: 171.646 INFO:tensorflow:loss = 10.460144, step = 601 (0.583 sec) INFO:tensorflow:global_step/sec: 192.269 INFO:tensorflow:loss = 10.529617, step = 701 (0.519 sec) INFO:tensorflow:global_step/sec: 198.264 INFO:tensorflow:loss = 9.100082, step = 801 (0.504 sec) INFO:tensorflow:global_step/sec: 226.842 INFO:tensorflow:loss = 10.485607, step = 901 (0.441 sec) INFO:tensorflow:global_step/sec: 152.929 INFO:tensorflow:loss = 10.052481, step = 1001 (0.655 sec) INFO:tensorflow:global_step/sec: 166.745 INFO:tensorflow:loss = 11.320213, step = 1101 (0.600 sec) INFO:tensorflow:global_step/sec: 161.854 INFO:tensorflow:loss = 9.603306, step = 1201 (0.619 sec) INFO:tensorflow:global_step/sec: 179.074 INFO:tensorflow:loss = 11.110269, step = 1301 (0.556 sec) INFO:tensorflow:global_step/sec: 202.776 INFO:tensorflow:loss = 11.929443, step = 1401 (0.494 sec) INFO:tensorflow:global_step/sec: 144.161 INFO:tensorflow:loss = 11.951693, step = 1501 (0.694 sec) INFO:tensorflow:global_step/sec: 154.144 INFO:tensorflow:loss = 8.620987, step = 1601 (0.649 sec) INFO:tensorflow:global_step/sec: 151.094 INFO:tensorflow:loss = 10.666125, step = 1701 (0.663 sec) INFO:tensorflow:global_step/sec: 193.644 INFO:tensorflow:loss = 11.0349865, step = 1801 (0.516 sec) INFO:tensorflow:global_step/sec: 189.707 INFO:tensorflow:loss = 9.860596, step = 1901 (0.526 sec) INFO:tensorflow:global_step/sec: 176.423 INFO:tensorflow:loss = 10.695, step = 2001 (0.567 sec) INFO:tensorflow:global_step/sec: 213.066 INFO:tensorflow:loss = 10.426752, step = 2101 (0.471 sec) INFO:tensorflow:global_step/sec: 220.975 INFO:tensorflow:loss = 10.594796, step = 2201 (0.452 sec) INFO:tensorflow:global_step/sec: 219.289 INFO:tensorflow:loss = 10.4212265, step = 2301 (0.456 sec) INFO:tensorflow:global_step/sec: 215.123 INFO:tensorflow:loss = 9.668612, step = 2401 (0.465 sec) INFO:tensorflow:global_step/sec: 175.65 INFO:tensorflow:loss = 10.009649, step = 2501 (0.569 sec) INFO:tensorflow:global_step/sec: 206.962 INFO:tensorflow:loss = 10.477722, step = 2601 (0.483 sec) INFO:tensorflow:global_step/sec: 229.627 INFO:tensorflow:loss = 9.877638, step = 2701 (0.435 sec) INFO:tensorflow:global_step/sec: 195.792 INFO:tensorflow:loss = 10.274586, step = 2801 (0.512 sec) INFO:tensorflow:global_step/sec: 176.803 INFO:tensorflow:loss = 10.061047, step = 2901 (0.566 sec) INFO:tensorflow:Saving checkpoints for 3000 into train/linreg/model.ckpt. INFO:tensorflow:Loss for final step: 10.73032. <tensorflow.python.estimator.canned.dnn.DNNRegressor at 0x1818e63630>
Untuk pengguna MacOS
Untuk Windows pemakai
Anda dapat melihat informasi ini diPyTorch Papan Tensor.
Sekarang setelah log peristiwa ditulis, Anda dapat membuka Tensorboard. Tensorboard Keras berjalan pada port 6006 (Jupyter berjalan pada port 8888). Anda dapat menggunakan Terminal untuk pengguna MacOs atau prompt Anaconda untuk Windows pengguna.
Untuk pengguna MacOS
# Different for you cd /Users/Guru99/tuto_TF source activate hello-tf!
Buku catatan disimpan di jalur /Users/Guru99/tuto_TF
Untuk Windows Pengguna
cd C:\Users\Admin\Anaconda3 activate hello-tf
Buku catatan disimpan di jalur C:\Users\Admin\Anaconda3
Untuk meluncurkan Tensorboard, Anda dapat menggunakan kode ini
Untuk pengguna MacOS
tensorboard --logdir=./train/linreg
Untuk Windows Pengguna
tensorboard --logdir=.\train\linreg
Tensorboard terletak di URL ini: http://localhost:6006
Bisa juga berlokasi di lokasi berikut.
Salin dan tempel URL ke browser favorit Anda. Anda akan melihat ini:
Perhatikan bahwa, kita akan mempelajari cara membaca grafik dalam tutorial yang didedikasikan untuk belajar mendalam.
Jika Anda melihat sesuatu seperti ini:
Artinya Tensorboard tidak dapat menemukan berkas log. Pastikan Anda mengarahkan cd ke jalur yang benar atau periksa kembali apakah peristiwa log telah dibuat. Jika tidak, jalankan kembali kode tersebut.
Jika Anda ingin menutup TensorBoard Tekan CTRL+C
Tip Topi: Periksa prompt anaconda Anda untuk direktori kerja saat ini,
File log harus dibuat di C:\Users\Admin
Ringkasan
TensorBoard adalah alat hebat untuk memvisualisasikan model Anda. Selain itu, banyak metrik yang ditampilkan selama pelatihan, seperti kerugian, akurasi, atau bobot.
Untuk mengaktifkan Tensorboard, Anda perlu mengatur jalur file Anda:
cd /Users/Guru99/tuto_TF
Aktifkan lingkungan Tensorflow
activate hello-tf
Luncurkan Papan Tensor
tensorboard --logdir=.+ PATH