欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

python人工智能tensorflow函數(shù)tensorboard使用方法

 更新時間:2022年05月05日 11:27:42   作者:Bubbliiiing  
這篇文章主要為大家介紹了python人工智能tensorflow函數(shù)tensorboard使用方法,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪

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

tensorboard相關函數(shù)及其常用參數(shù)設置

tensorboard相關函數(shù)代碼真的好多啊。難道都要背下來嗎!

不需要!只要收藏了來這里復制粘貼就可以了。常用的只有七個!

1 with tf.name_scope(layer_name):

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

利用該函數(shù)可以生成相對應的神經(jīng)網(wǎng)絡結構圖。

該函數(shù)支持嵌套。

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

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

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

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

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

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

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

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

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

4 tf.summary.merge_all()

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

tf.summary.scalar、tf.summary.histogram、tf.summary.image在定義的時候,也不會立即執(zhí)行,需要通過sess.run來明確調(diào)用這些函數(shù)。因為,在一個程序中定義的寫日志操作比較多,如果一一調(diào)用,將會十分麻煩,所以Tensorflow提供了tf.summary.merge_all()函數(shù)將所有的summary整理在一起。

在TensorFlow程序執(zhí)行的時候,只需要運行這一個操作就可以將代碼中定義的所有寫summary內(nèi)容執(zhí)行一次,從而將所有的summary內(nèi)容寫入。

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

將summary內(nèi)容寫入磁盤文件,F(xiàn)ileWriter類提供了一種用于在給定目錄下創(chuàng)建事件文件的機制,并且將summary數(shù)據(jù)寫入硬盤。

在該標題中,summary數(shù)據(jù)被寫入logs文件夾中。

6 write.add_summary(result,i)

該函數(shù)成立前提為:

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

add_summary是tf.summary.FileWriter父類中的成員函數(shù);添加summary內(nèi)容到事件文件,寫入事件文件。
在該標題中,result是tf.summary.merge_all()執(zhí)行的結果,i表示世代數(shù)。

7 tensorboard --logdir=logs

該函數(shù)用于cmd命令行中。用于生成tensorboard觀測網(wǎng)頁。

例子

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

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:
            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數(shù)據(jù)類型,求平均。
    result = sess.run(accuracy,feed_dict = {xs:batch_xs,ys:batch_ys})   #執(zhí)行
    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)

該例子執(zhí)行結果為:

結構圖:

LOSS值:

weights,biases的直方圖分布:

以上就是python人工智能tensorflow函數(shù)tensorboard使用方法的詳細內(nèi)容,更多關于tensorflow函數(shù)tensorboard的資料請關注腳本之家其它相關文章!

相關文章

最新評論