TensorBoard
TensorBoard 是一套用於偵錯、優化及瞭解 TensorFlow、PyTorch、Hugging Face Transformers 和其他機器學習程式的可視化工具。
使用 TensorBoard
在 Azure Databricks 中啟動 TensorBoard 與在本機電腦上的 Jupyter Notebook 上啟動它並無不同。
%tensorboard
載入 magic 命令並定義您的記錄目錄。%load_ext tensorboard experiment_log_dir = <log-directory>
叫用
%tensorboard
magic命令。%tensorboard --logdir $experiment_log_dir
TensorBoard 伺服器會啟動,並在筆記本中內嵌顯示使用者介面。 它也提供連結,以在新索引卷標中開啟 TensorBoard。
下列螢幕快照顯示已填入記錄目錄中啟動的 TensorBoard UI。
您也可以直接使用 TensorBoard 的筆記本模組來啟動 TensorBoard。
from tensorboard import notebook
notebook.start("--logdir {}".format(experiment_log_dir))
TensorBoard 記錄和目錄
TensorBoard 會藉由讀取 TensorBoard 回呼和 TensorBoard 或 PyTorch 中的函式所產生的記錄,將機器學習程式可視化。 若要產生其他機器學習連結庫的記錄,您可以使用 TensorFlow 檔案寫入器直接寫入記錄(請參閱 TensorFlow 2.x 的模組:tf.summary,請參閱 TensorFlow 1.x 中舊版 API 的模組:tf.compat.v1.summary 。
為了確保實驗記錄能可靠地儲存,Databricks 建議將記錄寫入雲端記憶體,而不是在暫時叢集文件系統上。 針對每個實驗,請在唯一目錄中啟動 TensorBoard。 針對產生記錄的實驗中每一次執行機器學習程序代碼,請將 TensorBoard 回呼或檔案寫入器設定為寫入實驗目錄的子目錄。 如此一來,TensorBoard UI 中的數據就會分成執行。
閱讀官方 TensorBoard 檔 ,以開始使用 TensorBoard 來記錄機器學習計畫的資訊。
管理 TensorBoard 程式
在 Azure Databricks 筆記本內啟動的 TensorBoard 進程不會在中斷連結或重新啟動 REPL 時終止(例如,當您清除筆記本的狀態時)。 若要手動終止 TensorBoard 進程,請使用 %sh kill -15 pid
傳送終止訊號。 不當終止的 TensorBoard 進程可能會損毀 notebook.list()
。
若要列出目前在您的叢集上執行的 TensorBoard 伺服器,及其對應的記錄目錄和進程標識碼,請從 TensorBoard 筆記本模組執行 notebook.list()
。
已知問題
- 內嵌 TensorBoard UI 位於 iframe 內。 除非您在新索引標籤中開啟連結,否則瀏覽器安全性功能會防止UI中的外部連結運作。
--window_title
TensorBoard 的選項會在 Azure Databricks 上覆寫。- 根據預設,TensorBoard 會掃描埠範圍,以選取要接聽的埠。 如果叢集上執行太多 TensorBoard 進程,埠範圍中的所有埠可能無法使用。 您可以使用 自變數來指定埠號碼
--port
,藉此解決這項限制。 指定的埠應介於 6006 和 6106 之間。 - 若要讓下載鏈接能夠運作,您必須在索引標籤中開啟 TensorBoard。
- 使用 TensorBoard 1.15.0 時,投影機索引卷標是空白的。 因應措施是,若要直接造訪 [Projector] 頁面,您可以用
data/plugin/projector/projector_binary.html
取代 URL中的#projector
。 - TensorBoard 2.4.0 有已知 問題 ,如果升級,可能會影響 TensorBoard 轉譯。
- 如果您要將 TensorBoard 相關資料記錄至 DBFS 或 UC 磁碟區,您可能會收到類似 的錯誤
No dashboards are active for the current data set
。 若要克服此錯誤,建議您在使用writer
來記錄資料之後呼叫writer.flush()
和writer.close()
。 這可確保所有記錄的數據都已正確寫入,並可供 TensorBoard 轉譯。