第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

全部開發(fā)者教程

TensorFlow 入門教程

TensorBoard 的簡介與快速上手

在之前的學(xué)習(xí)之中,我們已經(jīng)對整個機(jī)器學(xué)習(xí)的結(jié)構(gòu)有了一個大致的了解,但是我們在查看訓(xùn)練結(jié)果的時候只采用了兩種可視化方法:

  • 使用 print 或者 log 來打印出一些日志與結(jié)果;
  • 使用 pyplot 來進(jìn)行運行結(jié)果的可視化。

這兩種結(jié)果各有優(yōu)劣,第一種方法比較快速,能夠在訓(xùn)練的時候直接查看,但是卻不夠直觀;而第二種方法能夠很直觀的看到變化,但是卻只能在訓(xùn)練結(jié)束后查看。有沒有一種更好的方法來做到實時的、快速地、直觀的查看呢?

那就是接下來幾節(jié)課我們要學(xué)習(xí)的可視化工具 —— TensorBoard 。

1. 什么是 TensorBoard

TensorBoard 是一個工具包,它提供機(jī)器學(xué)習(xí)實驗所需的可視化功能和工具。

值得注意的是,這里并沒有明確說明要使用 TensorFlow 框架才能使用 TensorBoard 才能進(jìn)行可視化工作。因此在實際中,很多的其他框架之中都內(nèi)置了 TensorBoard 的工具,比如 PyTorch 等??傮w而言,TensorBoard 是一個通用的,高效率的可視化工具。

具體而言,TensorBoard 可以實現(xiàn)以下的功能:

  • 對準(zhǔn)確率、訓(xùn)練損失等參數(shù)進(jìn)行可視化工作;
  • 對模型的架構(gòu)進(jìn)行可視化工作;
  • 對文本、圖片、音頻等媒體數(shù)據(jù)進(jìn)行顯示;
  • 查看權(quán)重、偏差的直方圖;
  • 等等。

在這里,結(jié)合我們之前的訓(xùn)練例子,我們會更多地對前三點應(yīng)用進(jìn)行講解。

2. TensorBoard 的安裝

一般情況下,當(dāng)你安裝 TensorFlow 的時候,已經(jīng)默認(rèn)幫你安裝了 TensorBoard ,你只需要直接使用即可。但是也不排除某些特殊情況導(dǎo)致沒有一起安裝的情況。

2.1 使用 PIP 安裝

使用 PIP 安裝比較簡單,直接運行以下命令即可:

pip install TensorBoard

如果網(wǎng)絡(luò)連接失敗,可以參考以前的 TensorFlow 安裝教程進(jìn)行鏡像的更換。

2.2 使用 Anaconda 安裝

如果有些同學(xué)是在 Anaconda 環(huán)境中進(jìn)行的操作,那么推薦使用 Anaconda 命令進(jìn)行安裝:

conda install TensorBoard

通過這樣的操作,我們就完成了 TensorBoard 的安裝工作。

3. TensorBoard 的快速上手使用

既然已經(jīng)安裝了 TensorBoard ,那么接下來我們便來看一下如何快速上手使用 TensorBoard 。

在這里,我們并不會進(jìn)行更加深入的學(xué)習(xí),也不會記錄過于復(fù)雜的數(shù)據(jù),這一節(jié)的目的是讓大家對 TensorBoard 的整體使用流程有一個大致的了解。

首先,我們編寫一段很平常的 Mnist 數(shù)據(jù)集的識別程序:

首先,我們進(jìn)行數(shù)據(jù)集的獲取與模型的構(gòu)建:

import tensorflow as tf

(x_train, y_train),(x_test, y_test) = tf.keras.datasets.mnist.load_data()

x_train, x_test = x_train / 255.0, x_test / 255.0

def create_model():
  return tf.keras.models.Sequential([
    tf.keras.layers.Flatten(input_shape=(28, 28)),
    tf.keras.layers.Dense(256, activation='relu'),
    tf.keras.layers.Dense(10, activation='softmax')
  ])

model = create_model()
model.compile(optimizer='adam',
              loss='sparse_categorical_crossentropy',
              metrics=['accuracy'])

這是一個非常簡單的線性程序,并且我們在模型編譯的過程之中,指定記錄的指標(biāo)包括準(zhǔn)確率(accuracy)。

然后我們進(jìn)行模型的訓(xùn)練,同時進(jìn)行相應(yīng)的記錄工作:

tensorboard_callback = tf.keras.callbacks.TensorBoard(log_dir='./logs')

model.fit(x=x_train, y=y_train, 
          epochs=3, 
          validation_data=(x_test, y_test), 
          callbacks=[tensorboard_callback])

在這里,我們定義了一個回調(diào),該回調(diào)是 TensorBoard 回調(diào),該回調(diào)會在模型訓(xùn)練的時候進(jìn)行日志的輸出與構(gòu)建工作。

在這里我們只指定了一個參數(shù):

  • logdir:用于存放日志的目錄。

在后續(xù)的學(xué)習(xí)之中,我們會陸續(xù)學(xué)習(xí)到更多的參數(shù)與使用方法。

運行程序,我們可以得到如下輸出:

Epoch 1/3
1875/1875 [==============================] - 5s 3ms/step - loss: 0.2252 - accuracy: 0.9344 - val_loss: 0.1082 - val_accuracy: 0.9684
Epoch 2/3
1875/1875 [==============================] - 4s 2ms/step - loss: 0.0933 - accuracy: 0.9712 - val_loss: 0.1037 - val_accuracy: 0.9672
Epoch 3/3
1875/1875 [==============================] - 4s 2ms/step - loss: 0.0622 - accuracy: 0.9807 - val_loss: 0.0705 - val_accuracy: 0.9783
<tensorflow.python.keras.callbacks.History at 0x7f5500172f98>

然后我們在當(dāng)前目錄下運行終端,并且輸入命令:

tensorboard --logdir logs

其中 --logdir 的參數(shù)就是我們剛才指定的日志目錄,通過運行以上命令,我們能得到相應(yīng)的輸出,通過輸出我們可以發(fā)現(xiàn),我們的 TensorBoard 目前在 localhost:6006 端口運行。

在瀏覽器中打開 localhost:6006 ,我們就可以發(fā)現(xiàn)如下界面:

圖片描述

我們可以發(fā)現(xiàn),該頁面一共有兩個選項卡,第一個選項卡包含了兩個圖表:

  • 訓(xùn)練集、測試集的準(zhǔn)確率的圖表;
  • 訓(xùn)練集、測試集的 Loss 的變化的圖表。

其中第二個圖表是自動生成的,也就是說 TensorBoard 會自動記錄 Loss 變化;而第一個圖表是由我們編譯模型的時候指定的。

打開第二個選項卡,我們可以看到我們的網(wǎng)絡(luò)的模型:

圖片描述

該模型圖展示了我們的網(wǎng)絡(luò)模型,并且支持縮放等功能。

4. 小結(jié)

在這節(jié)課中,我們學(xué)習(xí)了什么是 TensorBoard ,同時了解了如何安裝 TensorBoard ,最后,我們通過一個具體的實例了解了 TensorBoard 的具體使用方法以及整體的流程。