TensorBoard(3)模型圖

      網友投稿 869 2025-03-31

      前言


      TensorBoard的圖儀表盤(graph)是檢測模型的強大工具,可以快速查看模型結構的預覽圖,并確保其符合預期想法。還可以查看操作級圖,以了解Tensorflow程序。

      一、訓練模型并記錄數據

      首先定義一個簡單的順序模型

      # Define the model. model = keras.models.Sequential([ keras.layers.Flatten(input_shape=(28, 28)), keras.layers.Dense(32, activation='relu'), keras.layers.Dropout(0.2), keras.layers.Dense(10, activation='softmax') ]) model.compile( optimizer='adam', loss='sparse_categorical_crossentropy', metrics=['accuracy'])

      訓練之前,請定義Keras TensorBoard callback ,并只當日志目錄。通過將此回調函數傳遞該Model.fit( ),可以確保在TensorBoard中記錄圖形數據以進行可視化。

      TensorBoard(3)模型圖

      # Define the Keras TensorBoard callback. logdir="logs/fit/" + datetime.now().strftime("%Y%m%d-%H%M%S") tensorboard_callback = keras.callbacks.TensorBoard(log_dir=logdir) # Train the model. model.fit( train_images, train_labels, batch_size=64, epochs=5, callbacks=[tensorboard_callback])

      打開TensorBoard

      點擊頂部的“graph”來選擇圖形儀表盤。

      %tensorboard --logdir logs

      1.1 op-level 執行圖

      默認情況下,TensorBoard顯示op-level圖。(在左側,可以看到已選擇“Default”標簽)

      請注意,圖中的數據是從下到上流動的,因此于代碼相比是上到下;

      還可以看到該圖與Keras模型定義精密匹配,并具有其他計算節點的額外邊緣。

      通過滾動鼠標來放大或縮小;

      單擊左鍵進行拖拉平移;

      鼠標移動到節點處,然后雙擊能看到進一步的結構信息:

      1.2 概念圖

      “概念圖”是Keras模型的視圖。如果需要重新使用保存的模型,并且想要檢查或驗證其結構,這比較有用。

      選擇“keras”標簽,來查看概念圖。

      雙擊結點以查看模型的結構:

      1.3 完整代碼

      加載tensorboard

      # Load the TensorBoard notebook extension. %load_ext tensorboard

      刪除舊日志(可選)

      # Clear any logs from previous runs !rm -rf ./logs/

      執行如下代碼:

      from __future__ import absolute_import from __future__ import division from __future__ import print_function from datetime import datetime from packaging import version import tensorflow as tf from tensorflow import keras print("TensorFlow version: ", tf.__version__) assert version.parse(tf.__version__).release[0] >= 2, \ "This notebook requires TensorFlow 2.0 or above." # 定義一個 Keras 模型,在此示例中,分類器是一個簡單的四層順序模型。 # Define the model. model = keras.models.Sequential([ keras.layers.Flatten(input_shape=(28, 28)), keras.layers.Dense(32, activation='relu'), keras.layers.Dropout(0.2), keras.layers.Dense(10, activation='softmax') ]) model.compile( optimizer='adam', loss='sparse_categorical_crossentropy', metrics=['accuracy']) # 下載并準備訓練數據 (train_images, train_labels), _ = keras.datasets.fashion_mnist.load_data() train_images = train_images / 255.0 # 訓練模型并記錄數據 # Define the Keras TensorBoard callback. logdir="logs/fit/" + datetime.now().strftime("%Y%m%d-%H%M%S") tensorboard_callback = keras.callbacks.TensorBoard(log_dir=logdir) # Train the model. model.fit( train_images, train_labels, batch_size=64, epochs=5, callbacks=[tensorboard_callback])

      啟動 TensorBoard,通過點擊頂部的 “graph” 來選擇圖形儀表板。

      %tensorboard --logdir logs

      tf.function 可視化圖

      背景

      上面是基于Keras模型的圖,其中這些圖是用國定義Keras層并調用Model.fit( )創建的。

      如果使用tf.function( )函數自定義訓練,那如何使用TensorBoard可視化呢?

      實現

      我們可以使用TensorBoard中 TensorFlow Summary Trace API 記錄簽名函數進行可視化。

      先看一下代碼:

      # 需要跟蹤的函數 @tf.function def my_func(x, y): # 一個簡單的relu層 return tf.nn.relu(tf.matmul(x, y)) # 設置日志 stamp = datetime.now().strftime("%Y%m%d-%H%M%S") logdir = 'logs/func/%s' % stamp writer = tf.summary.create_file_writer(logdir) # 函數的示例數據 x = tf.random.uniform((3, 3)) y = tf.random.uniform((3, 3)) # 用 tf.summary.trace_on() 和 tf.summary.trace_export() 來記錄函數調用 tf.summary.trace_on(graph=True, profiler=True) # 跟蹤時只調用一個 tf.function z = my_func(x, y) with writer.as_default(): tf.summary.trace_export( name="my_func_trace", step=0, profiler_outdir=logdir)

      實現流程:

      使用tf.function 定義訓練模型的函數

      在tf.function函數調用站點前,使用tf.summary.trace_on( ),通過傳遞profiler = True 將配置文件信息(內存、CPU時間等)添加到圖中

      使用摘要文件編寫其,調用tf.summary.trace_export( )保存日志數據

      打開TensorBoard

      打開TensorBoard

      %tensorboard --logdir logs/func

      參考:https://colab.research.google.com/github/tensorflow/docs-l10n/blob/master/site/zh-cn/tensorboard/graphs.ipynb#scrollTo=e25E37vd1xEW

      Keras 機器學習

      版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。

      版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。

      上一篇:未來70%新應用源自低代碼,藍凌6步助力“應用自由”
      下一篇:如何粘貼身份證號碼和銀行卡號(銀行卡怎么換綁身份證號碼)
      相關文章
      中文字幕亚洲精品无码| 亚洲毛片无码专区亚洲乱| 亚洲国产中文在线二区三区免| 亚洲va中文字幕无码久久| 亚洲国产人成中文幕一级二级| 国产精品国产亚洲区艳妇糸列短篇| 亚洲欧洲无码AV不卡在线| 亚洲免费网站在线观看| 亚洲图片校园春色| 亚洲冬月枫中文字幕在线看| 久久久久亚洲AV无码永不| 18亚洲男同志videos网站| 亚洲欧洲免费视频| 亚洲黄色中文字幕| 1区1区3区4区产品亚洲| 亚洲日本乱码一区二区在线二产线| 亚洲美女精品视频| 婷婷精品国产亚洲AV麻豆不片 | 奇米影视亚洲春色| 亚洲中文字幕视频国产| 国产亚洲日韩一区二区三区| 亚洲色欲久久久综合网| 亚洲成a人片在线观看无码| 亚洲国产精品一区二区第一页| 亚洲AV永久无码精品| 国产成人精品日本亚洲网站| 亚洲情a成黄在线观看动漫尤物| 亚洲大片在线观看| 亚洲爱情岛论坛永久| 亚洲国产精品一区二区久久| 亚洲最新永久在线观看| 亚洲一区电影在线观看| 一本天堂ⅴ无码亚洲道久久| 亚洲天然素人无码专区| 亚洲日本久久久午夜精品| 国产亚洲精品AAAA片APP| 亚洲AV成人精品日韩一区18p| 久久久久亚洲AV综合波多野结衣 | 亚洲区精品久久一区二区三区| 亚洲最大中文字幕无码网站 | www国产亚洲精品久久久日本|