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.
%tensorboard
Magic komutunu yükleyin ve günlük dizininizi tanımlayın.%load_ext tensorboard experiment_log_dir = <log-directory>
%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.
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ükleri okuyarak 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 bkz . Modül: tf.compat.v1.summary in TensorFlow 1.x içindeki eski API için).
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 deneme için TensorBoard'u benzersiz bir dizinde başlatın. Günlük oluşturan denemede makine öğrenmesi kodunuzun her çalıştırması için TensorBoard geri çağırmasını veya dosya yazıcısını deneme dizininin bir alt dizinine yazacak şekilde ayarlayın. Bu şekilde, TensorBoard kullanıcı arabirimindeki veriler çalıştırmalara ayrılır.
TensorBoard'u kullanarak makine öğrenmesi programınıza ilişkin bilgileri günlüğe kaydetmeye başlamak için 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 kullanarak %sh kill -15 pid
sonlandırma sinyali gönderin. Hatalı şekilde öldürülmüş TensorBoard işlemleri bozulabilir notebook.list()
.
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 komutunu çalıştırın notebook.list()
.
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. Bağımsız değişkeniyle bir bağlantı noktası numarası belirterek bu sınırlamaya geçici bir çözüm
--port
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'yi ile
data/plugin/projector/projector_binary.html
değiştirebilirsiniz#projector
. - 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 gibi
No dashboards are active for the current data set
bir hata alabilirsiniz. Bu hatanın üstesinden gelmek için ve kullanarak verileri günlüğe kaydetmeyiwriter
çağırmanızwriter.flush()
writer.close()
önerilir. Bu, günlüğe kaydedilen tüm verilerin düzgün yazılmasını ve TensorBoard tarafından işlenmesini sağlar.