Tensorflow利用其視覺化工具tensorboard視覺化將神經網路
阿新 • • 發佈:2018-12-10
參考莫煩的B站教程20,利用tensorflow自帶的視覺化工具tensorboard,在Google瀏覽器上進行了簡單神網路的視覺化。例子程式碼如下(spyder(tensorflow)編輯):
Created on Mon Sep 17 18:37:22 2018 @author: Administrator """ # -*- coding: utf-8 -*- """ Created on Thu Sep 13 19:36:15 2018 莫煩B站的教學視訊P16的例子。擬合一個二次函式。構建了一個隱藏層含有具有十個神經元的三層神經網路。激勵函式用的relu 本次主要是演示將神經網路架構在tensorboard上進行視覺化。 @author: Administrator """ import tensorflow as tf #import matplotlib.pyplot as plt#首先載入視覺化模組 def add_layer(inputs,in_size,out_size,activation_function=None):#None的話,預設就是線性函式 with tf.name_scope('layer'): with tf.name_scope('weights'): Weights=tf.Variable(tf.random_normal([in_size,out_size]),name='W')#生成In_size行和out_size列的矩陣。代表權重矩陣。 with tf.name_scope('biases'): biases=tf.Variable(tf.zeros([1,out_size])+0.1,name='b') with tf.name_scope('Wx_plus_b'): Wx_plus_b=tf.matmul(inputs,Weights)+biases#預測出來的還沒有被啟用的值儲存在這個變數中。 if activation_function is None: outputs=Wx_plus_b else: outputs=activation_function(Wx_plus_b) return outputs#outputs是add_layer的輸出值。 #define placeholder for inputs to network. with tf.name_scope('inputs'):#input 包含了x和Y的input xs=tf.placeholder(tf.float32,[None,1],name='x_input')#1是x_data的屬性為1.None指無論給多少個例子都ok。 ys=tf.placeholder(tf.float32,[None,1],name='y_input') #開始建造第一層layer。典型的三層神經網路:輸入層(有多少個輸入的x_data就有多少個神經元,本例中,只有一個屬性,所以只有一個神經元輸入),假設10個神經元的隱藏層,輸出層。 #由於在使用relu,該程式碼就是用十條線段擬合一個拋物線。 l1=add_layer(xs,1,10,activation_function=tf.nn.relu)#L1僅是單隱藏層,全連線網路。 #再定義一個輸出層,即:prediction #add_layer的輸出值是l1,把l1放在prediction的input。input的size就是隱藏層的size:10.output的size就是y_data的size就是1. prediction=add_layer(l1,10,1,activation_function=None) with tf.name_scope('loss'): loss=tf.reduce_mean(tf.reduce_sum(tf.square(ys-prediction), reduction_indices=[1]))#reduction_indices=[1]:按行求和。reduction_indices=[0]按列求和。sum是將所有例子求和,再求平均(mean)。 with tf.name_scope('train'): #通過訓練學習。提升誤差。 train_step=tf.train.GradientDescentOptimizer(0.1).minimize(loss)#以0.1的學習效率來訓練學習,來減小loss。 sess=tf.Session() writer=tf.summary.FileWriter('logs',sess.graph)#把圖片load到log的資料夾裡,在瀏覽器裡瀏覽。 #important step sess.run(tf.global_variables_initializer())
期間,需要注意的是:
@1、將程式碼run之後,建立的log檔案被放在了spyer的.py檔案的預設儲存位置。因此下一步在cmd上執行:
”tensorboard --logdir=logs“(win10平臺上需要這樣寫,而不是logdir='logs/')時,需要將cmd的工作路徑改到“log”檔案所在的上一級。
@2、根據給出的地址即at後面的地址,copy到Google瀏覽器ernter後,會進入到tensorboard的線上介面: