TensorFlow工具快速入門教程8 TensorBoard簡介
什麼是TensorBoard?
Tensorboard是視覺化圖形介面。幷包含理解,除錯和優化模型的其他工具。
圖片.png
- Scalars:在模型訓練期間顯示不同的有用資訊
- Graphs:顯示模型
- Histogram:使用直方圖顯示權重
- Distribution:顯示權重分佈
- Projector 顯示主成分分析和T-SNE演算法。該技術用於降維
如果檢視圖表,可以瞭解模型的工作原理。
- 資料排隊模型:將等於批量大小的資料量推送到模型,即每次迭代後的資料饋送數量
- 將資料提供給Tensors
- 訓練模型
- 顯示訓練期間的批次數。將模型儲存在磁碟上。
圖片.png
tensorboard背後的基本思想是神經網路為黑盒子,我們需要工具來檢查這個盒子裡面的東西。您可以將tensorboard想象成一個手電筒。
它有助於理解操作之間的依賴關係,如何計算權重,顯示損失函式和許多其他有用資訊。當您將所有這些資訊組合在一起時,您就擁有了很好的工具來除錯並改進模型。
圖片.png
神經網路決定如何在模型預測結果之前連線不同的“神經元”和多少層。一旦定義了體系結構,您不僅需要訓練模型,還需要使用度量來計算預測的準確性。該度量被稱為損失函式。目標是最小化損失函式。換句話說,這意味著模型減少了錯誤。所有機器學習演算法將重複多次計算,直到損失達到更平坦的線。要最大限度地減少此丟失功能,您需要定義學習率。這是您希望模型學習的速度。如果您將學習率設定得太高,則模型沒有時間學習任何東西。左圖是這種情況。線條正在上下移動,這意味著模型預測純粹的猜測結果。右圖顯示損失在迭代中逐漸減少,直到曲線變平,這意味著模型找到了解決方案。
TensorBoard是一個很好的工具,可以顯示這些指標並突出潛在的問題。神經網路在找到解決方案之前可能需要數小時到數週。
TensorBoard經常更新指標。在這種情況下,您無需等到最後才能看到模型是否正確訓練。您可以開啟TensorBoard檢查訓練的進展情況,並在必要時進行適當的更改。
參考資料
- 討論qq群144081101 591302926 567351477 釘釘群21745728
- ofollow,noindex">本文最新版本地址
- 本文涉及的python測試開發庫 謝謝點贊!
- 本文相關海量書籍下載
TensorBoard快速入門
程式碼:
#!/usr/bin/env python3 # -*- coding: utf-8 -*- # Author:xurongzhong#126.com wechat:pythontesting qq:37391319 # 技術支援 釘釘群:21745728(可以加釘釘pythontesting邀請加入) # qq群:144081101 591302926567351477 # CreateDate: 2018-11-21 import numpy as np import tensorflow as tf X_train = (np.random.sample((10000,5))) y_train =(np.random.sample((10000,1))) X_train.shape 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 ) ) # 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)
執行 tensorboard --logdir=./train/linreg,就可以在網頁開啟tensorboard 。比如:http://172.20.16.98:6006。
圖片.png