TensorBoard Eğitimi: TensorFlow Grafik Görselleştirmesi [Örnek]
TensorBoard nedir?
Tensör Kartı modeli anlamak, hata ayıklamak ve optimize etmek için grafiği ve diğer araçları görselleştirmek için kullanılan arayüzdür. Makine öğrenimi iş akışı için ölçümler ve görselleştirmeler sağlayan bir araçtır. Kayıp ve doğruluk, model grafiği görselleştirmesi, düşük boyutlu alanlara proje yerleştirme vb. gibi ölçümlerin izlenmesine yardımcı olur.
Tensorboard Örneği Kullanılarak TensorFlow Grafik Görselleştirmesi
Aşağıdaki görüntü, bu TensorBoard Eğitiminde oluşturacağınız TensorBoard grafiğinden alınmıştır. Ana paneldir:
Aşağıdaki resimde TensorBoard grafik görselleştirme panelini görebilirsiniz. Panel, modeli çalıştırdığınızda eklediğiniz bilgi düzeyine bağlı farklı sekmeler içerir.
- skalerler: Model eğitimi sırasında farklı faydalı bilgileri gösterin
- Grafikler: Modeli göster
- Histogram: Ağırlıkları histogramla görüntüleme
- dağıtım: Ağırlık dağılımını görüntüleyin
- projektör: Temel bileşen analizini ve T-SNE algoritmasını göster. Boyutsallığın azaltılması için kullanılan teknik
Bu TensorBoard Eğitimi sırasında basit bir derin öğrenme modelini eğiteceksiniz. Gelecekteki bir eğitimde nasıl çalıştığını öğreneceksiniz.
Grafiğe bakarsanız modelin nasıl çalıştığını anlayabilirsiniz.
- Verileri modele kuyruğa alın: Toplu iş boyutuna eşit miktarda veriyi modele aktarın; yani, Her yinelemeden sonraki veri beslemesi sayısı
- Verileri Tensörlere besleyin
- Modeli eğitin
- Eğitim sırasında parti sayısını görüntüleyin. Modeli diske kaydedin.
Tensorboard'un arkasındaki temel fikir, sinir ağının kara kutu olarak bilinen bir şey olabileceği ve bu kutunun içinde ne olduğunu incelemek için bir araca ihtiyacımız olduğudur. Tensorboard'u sinir ağına dalmaya başlamak için bir el feneri olarak düşünebilirsiniz.
İşlemler arasındaki bağımlılıkları, ağırlıkların nasıl hesaplandığını anlamaya yardımcı olur, kayıp fonksiyonunu ve diğer birçok yararlı bilgiyi görüntüler. Tüm bu bilgi parçalarını bir araya getirdiğinizde, modelde hata ayıklamak ve modeli nasıl geliştireceğinizi bulmak için harika bir araca sahip olursunuz.
TensorBoard grafiğinin ne kadar yararlı olabileceğine dair size bir fikir vermek için aşağıdaki resme bakın:
Bir sinir ağı, modelin bir sonucu tahmin edebilmesi için farklı "nöronları" nasıl bağlayacağına ve kaç katmana ihtiyaç duyacağına karar verir. Mimariyi tanımladıktan sonra, yalnızca modeli eğitmekle kalmaz, aynı zamanda tahminin doğruluğunu hesaplamak için bir ölçüt de edinmeniz gerekir. Bu ölçüt, bir kayıp fonksiyonu. Amaç kayıp fonksiyonunu en aza indirmektir. Farklı bir deyişle modelin daha az hata yaptığı anlamına gelir. Tüm makine öğrenimi algoritmaları, kayıp daha düz bir çizgiye ulaşana kadar hesaplamaları birçok kez tekrarlayacaktır. Bu kayıp fonksiyonunu en aza indirmek için bir tanımlamanız gerekir. öğrenme oranı. Modelin öğrenmesini istediğiniz hızdır. Öğrenme oranını çok yüksek ayarlarsanız modelin hiçbir şey öğrenecek zamanı kalmaz. Soldaki resimde de durum bu. Çizgi yukarı ve aşağı hareket ediyor, bu da modelin sonucu saf tahminle tahmin ettiği anlamına geliyor. Sağdaki resim, eğri düzleşene kadar yinelemeler sonucunda kaybın azaldığını gösteriyor, bu da modelin bir çözüm bulduğu anlamına geliyor.
TensorBoard, bu tür ölçümleri görselleştirmek ve olası sorunları vurgulamak için harika bir araçtır. Sinir ağının bir çözüm bulması saatler hatta haftalar sürebilir. TensorBoard metrikleri çok sık günceller. Bu durumda modelin doğru şekilde eğitilip eğitilmediğini görmek için sonuna kadar beklemenize gerek yoktur. Eğitimin nasıl gittiğini kontrol etmek ve gerekiyorsa uygun değişikliği yapmak için TensorBoard'u açabilirsiniz.
TensorBoard nasıl kullanılır?
Bu eğitimde, TensorBoard'u MacOS için terminalden ve TensorBoard için Komut satırından nasıl açacağınızı öğreneceksiniz. Windows.
Kod gelecekteki bir eğitimde açıklanacak, burada odak noktası TensorBoard'dur.
Öncelikle eğitim sırasında kullanacağınız kütüphaneleri import etmeniz gerekmektedir.
## Import the library import tensorflow as tf import numpy as np
Veriyi siz yaratırsınız. 10000 satır ve 5 sütundan oluşan bir dizidir
X_train = (np.random.sample((10000,5))) y_train = (np.random.sample((10000,1))) X_train.shape
Çıktı
(10000, 5)
Aşağıdaki kodlar verileri dönüştürerek modeli oluşturur.
Öğrenme oranının 0.1'e eşit olduğunu unutmayın. Bu oranı daha yüksek bir değere çevirirseniz model çözüm bulamayacaktır. Yukarıdaki resmin sol tarafında olan şey budur.
Çoğu sırasında TensorFlow öğreticileriTensorFlow tahmin aracını kullanacaksınız. Bu, tüm matematiksel hesaplamaları içeren TensorFlow API'sidir.
Günlük dosyalarını oluşturmak için yolu belirtmeniz gerekir. Bu, model_dir argümanı ile yapılır.
Aşağıdaki TensorBoard örneğinde, modeli çalışma dizininde, yani not defterini veya python dosyasını sakladığınız yerde saklarsınız. Bu yolun içinde TensorFlow, linreg alt klasör adına sahip train adlı bir klasör oluşturacaktır.
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 ) )
Çıktı
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}
Bu TensorFlow görselleştirme grafiği örneğinin son adımı, modeli eğitmeyi içerir. Eğitim sırasında TensorFlow, bilgileri model dizinine yazar.
# 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)
Çıktı
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>
MacOS kullanıcıları için
Her Ticaretçi İçin Mükemmellik Windows kullanıcı
Bu bilgiyi şurada görebilirsiniz:PyTorch TensorBoard.
Artık günlük olaylarını yazdığınıza göre Tensorboard'u açabilirsiniz. Tensorboard Keras 6006 numaralı bağlantı noktasında çalışır (Jupyter (8888 portunda çalışır). MacOs kullanıcıları için Terminal'i veya Anaconda istemini kullanabilirsiniz. Windows kullanıcı.
MacOS kullanıcıları için
# Different for you cd /Users/Guru99/tuto_TF source activate hello-tf!
Dizüstü bilgisayar /Users/Guru99/tuto_TF yolunda saklanır
Her Ticaretçi İçin Mükemmellik Windows kullanıcılar
cd C:\Users\Admin\Anaconda3 activate hello-tf
Dizüstü bilgisayar C:\Users\Admin\Anaconda3 yolunda saklanır
Tensorboard'u başlatmak için bu kodu kullanabilirsiniz
MacOS kullanıcıları için
tensorboard --logdir=./train/linreg
Her Ticaretçi İçin Mükemmellik Windows kullanıcılar
tensorboard --logdir=.\train\linreg
Tensorboard şu URL'de bulunur: http://localhost:6006
Aşağıdaki konumda da bulunabilir.
URL'yi kopyalayıp favori tarayıcınıza yapıştırın. Bunu görmelisiniz:
Grafiğin nasıl okunacağını konuya özel eğitimde öğreneceğimizi unutmayın. derin öğrenme.
Eğer böyle bir şey görürseniz:
Bu, Tensorboard'un günlük dosyasını bulamadığı anlamına gelir. CD'yi doğru yola yönlendirdiğinizden veya günlük olayının oluşturulup oluşturulmadığını iki kez kontrol ettiğinizden emin olun. Oluşturulmadıysa, kodu yeniden çalıştırın.
TensorBoard'u kapatmak istiyorsanız CTRL+C tuşlarına basın
Şapka İpucu: Geçerli çalışma dizini için anaconda isteminizi kontrol edin,
Günlük dosyası C:\Users\Admin konumunda oluşturulmalıdır.
ÖZET
TensorBoard modelinizi görselleştirmek için harika bir araçtır. Ayrıca eğitim sırasında kayıp, doğruluk veya ağırlıklar gibi birçok metrik görüntülenir.
Tensorboard'u etkinleştirmek için dosyanızın yolunu ayarlamanız gerekir:
cd /Users/Guru99/tuto_TF
Tensorflow ortamını etkinleştirin
activate hello-tf
Tensorboard'u başlatın
tensorboard --logdir=.+ PATH