中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

tf好朋友之tensorboard的使用

發布時間:2020-07-16 06:31:32 來源:網絡 閱讀:398 作者:ckllf 欄目:編程語言

  tensorboard常用于更直觀的觀察數據在神經網絡中的變化,或者用于觀測已經構建完成的神經網絡的結構。其有助于我們更加方便的去觀測tensorflow神經網絡的搭建情況以及執行情況。

  tensorboard相關函數及其常用參數設置

  常用的tensorboard相關函數代碼有七個:

  1 with tf.name_scope(layer_name):

  TensorFlow中的name_scope函數的作用是創建一個參數名稱空間。這個空間里包括許多參數,每個參數有不同的名字,這樣可以更好的管理參數空間,防止變量命名時產生沖突。

  利用該函數可以生成相對應的神經網絡結構圖。

  該函數支持嵌套。

  在該標題中,該參數名稱空間空間的名字為layer_name。

  2 tf.summary.histogram(layer_name+"/biases",biases)

  該函數用于將變量記錄到tensorboard中。用來顯示直方圖信息。

  一般用來顯示訓練過程中變量的分布情況。

  在該標題中,biases的直方圖信息被記錄到tensorboard的layer_name+"/biases"中。

  3 tf.summary.scalar(“loss”,loss)

  用來進行標量信息的可視化與顯示。

  一般在畫loss曲線和accuary曲線時會用到這個函數。

  在該標題中,loss的標量信息被記錄到tensorboard的"loss"中。

  4 tf.summary.merge_all()

  將之前定義的所有summary整合在一起。

  tf.summary.scalar、tf.summary.histogram、tf.summary.image在定義的時候,也不會立即執行,需要通過sess.run來明確調用這些函數。因為,在一個程序中定義的寫日志操作比較多,如果一一調用,將會十分麻煩,所以Tensorflow提供了tf.summary.merge_all()函數將所有的summary整理在一起。在TensorFlow程序執行的時候,只需要運行這一個操作就可以將代碼中定義的所有寫summary內容執行一次,從而將所有的summary內容寫入。

  5 tf.summary.FileWriter(“logs/”,sess.graph)

  將summary內容寫入磁盤文件,FileWriter類提供了一種用于在給定目錄下創建事件文件的機制,并且將summary數據寫入硬盤。

  在該標題中,summary數據被寫入logs文件夾中。

  6 write.add_summary(result,i)

  該函數成立前提為:

  write = tf.summary.FileWriter("logs/",sess.graph)

  add_summary是tf.summary.FileWriter父類中的成員函數;添加summary內容到事件文件,寫入事件文件。

  在該標題中,result是tf.summary.merge_all()執行的結果,i表示世代數。

  7 tensorboard --logdir=logs

  該函數用于cmd命令行中。用于生成tensorboard觀測網頁。

  例子

  該例子為手寫體識別例子。

  import tensorflow as tf

  import numpy as np

  from tensorflow.examples.tutorials.mnist import input_data

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

  def add_layer(inputs,in_size,out_size,n_layer,activation_function = None):

  layer_name = 'layer%s'%n_layer

  with tf.name_scope(layer_name):

  with tf.name_scope("Weights"):

  Weights = tf.Variable(tf.random_normal([in_size,out_size]),name = "Weights")

  tf.summary.histogram(layer_name+"/weights",Weights)

  with tf.name_scope("biases"):

  biases = tf.Variable(tf.zeros([1,out_size]) + 0.1,name = "biases")

  tf.summary.histogram(layer_name+"/biases",biases)

  with tf.name_scope("Wx_plus_b"):

  Wx_plus_b = tf.matmul(inputs,Weights) + biases

  tf.summary.histogram(layer_name+"/Wx_plus_b",Wx_plus_b)

  if activation_function == None :

  outputs = Wx_plus_b

  else:無錫人流多少錢 http://www.bhnnk120.com/

  outputs = activation_function(Wx_plus_b)

  tf.summary.histogram(layer_name+"/outputs",outputs)

  return outputs

  def compute_accuracy(x_data,y_data):

  global prediction

  y_pre = sess.run(prediction,feed_dict={xs:x_data})

  correct_prediction = tf.equal(tf.arg_max(y_data,1),tf.arg_max(y_pre,1)) #判斷是否相等

  accuracy = tf.reduce_mean(tf.cast(correct_prediction,tf.float32)) #賦予float32數據類型,求平均。

  result = sess.run(accuracy,feed_dict = {xs:batch_xs,ys:batch_ys}) #執行

  return result

  xs = tf.placeholder(tf.float32,[None,784])

  ys = tf.placeholder(tf.float32,[None,10])

  layer1 = add_layer(xs,784,150,"layer1",activation_function = tf.nn.tanh)

  prediction = add_layer(layer1,150,10,"layer2")

  with tf.name_scope("loss"):

  loss = tf.reduce_mean(tf.nn.softmax_cross_entropy_with_logits(labels=ys,logits = prediction),name = 'loss')

  #label是標簽,logits是預測值,交叉熵。

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

  train = tf.train.GradientDescentOptimizer(0.5).minimize(loss)

  init = tf.initialize_all_variables()

  merged = tf.summary.merge_all()

  with tf.Session() as sess:

  sess.run(init)

  write = tf.summary.FileWriter("logs/",sess.graph)

  for i in range(5001):

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

  sess.run(train,feed_dict = {xs:batch_xs,ys:batch_ys})

  if i % 1000 == 0:

  print("訓練%d次的識別率為:%f。"%((i+1),compute_accuracy(mnist.test.images,mnist.test.labels)))

  result = sess.run(merged,feed_dict={xs:batch_xs,ys:batch_ys})

  write.add_summary(result,i)

  該例子執行結果為:

  結構圖:

  LOSS值:

  weights,biases的直方圖分布


向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

寻乌县| 谢通门县| 敦煌市| 柯坪县| 屏南县| 杨浦区| 家居| 济源市| 呼伦贝尔市| 丽水市| 防城港市| 隆尧县| 湖州市| 延长县| 九台市| 射阳县| 竹山县| 佳木斯市| 兰考县| 天门市| 利津县| 巩义市| 呼伦贝尔市| 稻城县| 安仁县| 双城市| 基隆市| 仲巴县| 尼木县| 威海市| 航空| 双流县| 宝山区| 墨竹工卡县| 游戏| 成武县| 佛坪县| 温州市| 龙州县| 甘孜| 柏乡县|