TensorFlow入門教程:4:視覺化tensorboard
阿新 • • 發佈:2018-12-11
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有很多使用方法,在後面的文章中將會結合實際的例子進行進一步的展開。