tensorboard視覺化入門

2021-08-30 21:54:24 字數 3512 閱讀 7294

本程式是基於mnist手寫資料集,利用softmax函式來**準確率,程式進行了詳細注釋。

tensorboard是乙個強大的視覺化工具,可以看出構建的網路的結構。它支援graphs,scalars, distributions, histograms等視覺化。

程式如下:

import tensorflow as tf

from tensorflow.examples.tutorials.mnist import input_data

# 載入資料集

mnist = input_data.read_data_sets("mnist_data", one_hot=true)

# 每個批次的大小

batch_size = 100

# 計算一共有多少個批次

n_batch = mnist.train.num_examples // batch_size

# 引數概要

def variable_summaries(var):

with tf.name_scope('summaries'):

mean = tf.reduce_mean(var)

tf.summary.scalar('mean', mean) # 平均值

with tf.name_scope('stddev'):

stddev = tf.sqrt(tf.reduce_mean(tf.square(var - mean)))

tf.summary.scalar('stddev', stddev) # 標準差

tf.summary.scalar('max', tf.reduce_max(var)) # 最大值

tf.summary.scalar('min', tf.reduce_min(var)) # 最小值

tf.summary.histogram('histogram', var) # 直方圖

# 命名空間

with tf.name_scope('input'):

# 定義兩個placeholder

x = tf.placeholder(tf.float32, [none, 784], name='x-input')

y = tf.placeholder(tf.float32, [none, 10], name='y-input')

with tf.name_scope('layer'):

# 建立乙個簡單的神經網路

with tf.name_scope('wights'):

w = tf.variable(tf.zeros([784, 10]), name='w')

variable_summaries(w)

with tf.name_scope('biases'):

b = tf.variable(tf.zeros([10]), name='b')

variable_summaries(b)

with tf.name_scope('wx_plus_b'):

wx_plus_b = tf.matmul(x, w) + b

with tf.name_scope('softmax'):

prediction = tf.nn.softmax(wx_plus_b)

# 二次代價函式

# loss = tf.reduce_mean(tf.square(y-prediction))

with tf.name_scope('loss'):

loss = tf.reduce_mean(tf.nn.softmax_cross_entropy_with_logits(labels=y, logits=prediction))

tf.summary.scalar('loss', loss)

with tf.name_scope('train'):

# 使用梯度下降法

train_step = tf.train.gradientdescentoptimizer(0.2).minimize(loss)

# 初始化變數

init = tf.global_variables_initializer()

with tf.name_scope('accuracy'):

with tf.name_scope('correct_prediction'):

# 結果存放在乙個布林型列表中

correct_prediction = tf.equal(tf.argmax(y, 1), tf.argmax(prediction, 1)) # argmax返回一維張量中最大的值所在的位置

with tf.name_scope('accuracy'):

# 求準確率

accuracy = tf.reduce_mean(tf.cast(correct_prediction, tf.float32))

tf.summary.scalar('accuracy', accuracy)

# 合併所有的summary

merged = tf.summary.merge_all()

with tf.session() as sess:

sess.run(init)

writer = tf.summary.filewriter('logs/', sess.graph)

for epoch in range(51):

for batch in range(n_batch):

batch_xs, batch_ys = mnist.train.next_batch(batch_size)

# merged返回值存入summary中

summary, _ = sess.run([merged, train_step], feed_dict=)

# 記錄summary和epoch到檔案中

writer.add_summary(summary, epoch)

acc = sess.run(accuracy, feed_dict=)

print("iter " + str(epoch) + ",testing accuracy " + str(acc))

tensboard不會使用的請看此篇文章:如何使用tensorboard

tensorboard視覺化結果如下:

graphs(模型流圖):

histograms(直方圖):

自己可以執行一下**,視覺視覺化讓人興奮不已,tensorflow太厲害了。

TensorBoard模型視覺化

tensorboard是乙個基於瀏覽器的互動式工具,可以讓我們看到學習過程,並探索我們訓練好的模型。要執行tensorboard,首先到命令終端 開始 anaconda anaconda prompt,輸入activate tensorflow 然後,告訴tensorboard記錄的相關摘要 ten...

Tensorboard視覺化流程

在session會話中,加入視覺化 記住你的路徑!with tf.session as sess 你的內容 模型視覺化輸出 writer tf.summary.filewriter lenet ln1 graph tf.get default graph writer.close 然後輸入cmd,開...

深度學習 TensorBoard視覺化

1 概述 tensorboard是tensorflow的視覺化工具 通過tensorflow程式執行過程中輸出的日誌檔案視覺化tensorflow程式的執行狀態 tensorflow和tensorboard程式跑在不同的程序中 清除default graph和不斷增加的節點 tf.reset def...