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:

TensorFlow Grafiği Görselleştirme
TensorFlow Grafiği Görselleştirme

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.

TensorBoard Grafikleri

TensorBoard Grafikleri
  • 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.

  1. Verileri modele kuyruğa alın: Toplu iş boyutuna eşit miktarda veriyi modele aktarın; yani, Her yinelemeden sonraki veri beslemesi sayısı
  2. Verileri Tensörlere besleyin
  3. Modeli eğitin
  4. Eğitim sırasında parti sayısını görüntüleyin. Modeli diske kaydedin.

Tensorboard Örneği Kullanılarak TensorFlow Grafik Görselleştirmesi

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:

TensorBoard Grafikleri
TensorBoard grafiği

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

MacOS Kullanıcıları İçin TensorBoard Eğitimi

Her Ticaretçi İçin Mükemmellik Windows kullanıcı

TensorBoard Eğitimi 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.

TensorBoard'u kullanın

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.

TensorBoard'u kullanın

Eğer böyle bir şey görürseniz:

TensorBoard'u kullanın

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,

TensorBoard'u kullanın

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