Aracılığıyla paylaş


TensorBoard

TensorBoard , TensorFlow, PyTorch, Hugging Face Transformers ve diğer makine öğrenmesi programlarında hata ayıklamaya, iyileştirmeye ve anlamaya yönelik bir görselleştirme araçları paketidir.

TensorBoard’u kullanma

Azure Databricks'te TensorBoard'u başlatmak, bunu yerel bilgisayarınızdaki bir Jupyter not defterinde başlatmaktan farklı değildir.

  1. %tensorboard Magic komutunu yükleyin ve günlük dizininizi tanımlayın.

    %load_ext tensorboard
    experiment_log_dir = <log-directory>
    
  2. %tensorboard Sihirli komutu çağırın.

    %tensorboard --logdir $experiment_log_dir
    

    TensorBoard sunucusu başlatılır ve kullanıcı arabirimini not defterinde satır içinde görüntüler. Ayrıca TensorBoard'u yeni bir sekmede açmak için bir bağlantı sağlar.

    Aşağıdaki ekran görüntüsünde, doldurulmuş bir günlük dizininde başlatılan TensorBoard kullanıcı arabirimi gösterilmektedir.

    Doldurulmuş günlük dizininde TensorBoard kullanıcı arabirimi başlatıldı

TensorBoard'u doğrudan TensorBoard'un not defteri modülünü kullanarak da başlatabilirsiniz.

from tensorboard import notebook
notebook.start("--logdir {}".format(experiment_log_dir))

TensorBoard günlükleri ve dizinleri

TensorBoard, TensorBoard veya PyTorch'taki TensorBoard geri çağırmaları ve işlevleri tarafından oluşturulan günlükleriokuyarak makine öğrenmesi programlarınızı görselleştirir. Diğer makine öğrenmesi kitaplıkları için günlükler oluşturmak için, TensorFlow dosya yazıcılarını kullanarak doğrudan günlük yazabilirsiniz (bkz. Modülü: TensorFlow 2.x için tf.summary ve tensorFlow 1.x'teki eski API için Modülü: tf.compat.v1.summary).

Deneme günlüklerinizin güvenilir bir şekilde depolandığından emin olmak için Databricks, kısa ömürlü küme dosya sistemi yerine bulut depolamaya günlük yazmanızı önerir. Her deney için TensorBoard'u benzersiz bir dizinde başlatın. Makine öğrenmesi kodunuzun deneyde günlük ürettiği her çalıştırması için TensorBoard callback işlevini veya dosya yazıcısını, deney dizininin bir alt dizinine yazacak şekilde ayarlayın. Bu şekilde, TensorBoard kullanıcı arabirimindeki veriler çalıştırmalara ayrılır.

Makine öğrenmesi programınıza ilişkin bilgileri günlüğe kaydetmek için TensorBoard'u kullanmaya başlamak amacıyla resmi TensorBoard belgelerini okuyun.

TensorBoard süreçlerini yönetme

Azure Databricks not defteri içinde başlatılan TensorBoard işlemleri, not defteri ayrıldığında veya REPL yeniden başlatıldığında sonlandırılmaz (örneğin, not defterinin durumunu temizlediğinizde). Bir TensorBoard işlemini el ile sonlandırmak için %sh kill -15 pid kullanarak sonlandırma sinyali gönderin. Hatalı bir şekilde sonlandırılmış TensorBoard işlemleri, notebook.list()'u bozabilir.

Kümenizde çalışmakta olan TensorBoard sunucularını ilgili günlük dizinleri ve işlem kimlikleriyle birlikte listelemek için TensorBoard not defteri modülünden notebook.list() çalıştırın.

Bilinen sorunlar

  • Satır içi TensorBoard kullanıcı arabirimi bir iframe içindedir. Tarayıcı güvenlik özellikleri, bağlantıyı yeni bir sekmede açmadığınız sürece kullanıcı arabirimindeki dış bağlantıların çalışmasını engeller.
  • --window_title TensorBoard seçeneği Azure Databricks'te geçersiz kılınıyor.
  • Varsayılan olarak, TensorBoard dinlemek üzere bir bağlantı noktası seçmek için bir bağlantı noktası aralığını tarar. Kümede çalışan çok fazla TensorBoard işlemi varsa, bağlantı noktası aralığındaki tüm bağlantı noktaları kullanılamayabilir. --port bağımsız değişkeniyle bir bağlantı noktası numarası belirterek bu sınırlamaya geçici bir çözüm bulabilirsiniz. Belirtilen bağlantı noktası 6006 ile 6106 arasında olmalıdır.
  • İndirme bağlantılarının çalışması için TensorBoard'u bir sekmede açmanız gerekir.
  • TensorBoard 1.15.0 kullanırken Projektör sekmesi boş olur. Geçici bir çözüm olarak, projektör sayfasını doğrudan ziyaret etmek için URL'deki #projector ifadesini data/plugin/projector/projector_binary.html ile değiştirebilirsiniz.
  • TensorBoard 2.4.0'ın yükseltilirse TensorBoard işlemesini etkileyebilecek bilinen bir sorunu vardır.
  • TensorBoard ile ilgili verileri DBFS veya UC Birimlerine günlüğe kaydettiğinizde No dashboards are active for the current data set gibi bir hata alabilirsiniz. Bu hatanın üstesinden gelmek için, verileri günlüğe kaydettikten sonra writer.flush() ve writer.close() çağırmanız önerilir. Bu, günlüğe kaydedilen tüm verilerin düzgün yazılmasını ve TensorBoard tarafından işlenmesini sağlar.