1. 程式人生 > >TensorFlow入門教程:4:視覺化tensorboard

TensorFlow入門教程:4:視覺化tensorboard

在這裡插入圖片描述 Tensorboard在pip中顯示的概要資訊是”lets you watch Tensors Flow“,watch tensors的flow就是Tensorboard所要做的視覺化的主要功能。一般用於確認tensorflow模型訓練過程的視覺化。

概要資訊

專案 說明
開源/閉源 開源
License類別 Apache License 2.0
開發語言 Python,Typescript, HTML
當前穩定版本 1.10(stable)
作業系統支援 跨平臺,支援Linux/Windows/Mac

安裝&確認

tensorboard不需要特別的安裝,一般tensorflow安裝時就會同時經tensorboard進行安裝了。

liumiaocn:~ liumiao$ which tensorboard
/anaconda2/bin/tensorboard
liumiaocn:~ liumiao$ 
liumiaocn:~ liumiao$ pip show tensorboard
Name: tensorboard
Version: 1.10.0
Summary: TensorBoard lets you watch Tensors Flow
Home-page: https://github.com/tensorflow/tensorboard
Author: Google Inc.
Author-email: [email protected]
License: Apache 2.0 Location: /anaconda2/lib/python2.7/site-packages Requires: numpy, six, protobuf, werkzeug, markdown, futures, wheel Required-by: tensorflow liumiaocn:~ liumiao$

工作原理

tensorflow建立summary的資料,通過tensorboard的logdir傳入,利用生成的event檔案,tensorboard進行視覺化的展示。

具體步驟

Step 1: 生成summary檔案

在tensorflow的程式碼中使用諸如如下程式碼生成summary檔案

file_writer = tf.summary.FileWriter(’/path/to/logs’, sess.graph)

Step 2: 啟動tensorboard

將生成summary目錄作為logdir傳入,啟動tensorboard

tensorboard --logdir path/to/logs

Step 3: 通過URL訪問tensorboard

通過6006埠訪問tensorboard

使用例

程式碼

將前文的例子程式碼中新增生成summary的語句

liumiaocn:Notebook liumiao$ cat tensor_add.py
import tensorflow as tf
import os

os.environ['TF_CPP_MIN_LOG_LEVEL'] = '2'

A = tf.placeholder(tf.float32,name="A")
B = tf.placeholder(tf.float32,name="B")

cal_op = tf.add(A,B,name="addition")

session = tf.Session()
writer = tf.summary.FileWriter("/tmp/tensorboard/",session.graph)
result = session.run(cal_op, feed_dict={A:[10],B: [32]})

print(result)

session.close()
writer.close()
liumiaocn:Notebook liumiao$

啟動tensorboard

liumiaocn:Notebook liumiao$ mkdir -p /tmp/tensorboard/
liumiaocn:Notebook liumiao$ tensorboard --logdir /tmp/tensorboard/
/anaconda2/lib/python2.7/site-packages/h5py/__init__.py:36: FutureWarning: Conversion of the second argument of issubdtype from `float` to `np.floating` is deprecated. In future, it will be treated as `np.float64 == np.dtype(float).type`.
  from ._conv import register_converters as _register_converters
TensorBoard 1.10.0 at http://liumiaocn:6006 (Press CTRL+C to quit)

執行tensorflow

liumiaocn:Notebook liumiao$ ls /tmp/tensorboard/
liumiaocn:Notebook liumiao$ python tensor_add.py
/anaconda2/lib/python2.7/site-packages/h5py/__init__.py:36: FutureWarning: Conversion of the second argument of issubdtype from `float` to `np.floating` is deprecated. In future, it will be treated as `np.float64 == np.dtype(float).type`.
  from ._conv import register_converters as _register_converters
[42.]
liumiaocn:Notebook liumiao$ ls /tmp/tensorboard/
events.out.tfevents.1537882807.liumiaocn
liumiaocn:Notebook liumiao$

確認tensorboard

在這裡插入圖片描述

總結

這篇文章介紹了一下使用最簡單的例子展示tensorboard的使用方式,當然tensorflow有很多使用方法,在後面的文章中將會結合實際的例子進行進一步的展開。

參考內容