python中tensorflow函数有哪些,如何使用
Admin 2022-09-16 群英技术资讯 978 次浏览
在实际应用中,我们有时候会遇到“python中tensorflow函数有哪些,如何使用”这样的问题,我们该怎样来处理呢?下文给大家介绍了解决方法,希望这篇“python中tensorflow函数有哪些,如何使用”文章能帮助大家解决问题。tensorboard相关函数代码真的好多啊。难道都要背下来吗!
不需要!只要收藏了来这里复制粘贴就可以了。常用的只有七个!
TensorFlow中的name_scope函数的作用是创建一个参数名称空间。这个空间里包括许多参数,每个参数有不同的名字,这样可以更好的管理参数空间,防止变量命名时产生冲突。
利用该函数可以生成相对应的神经网络结构图。
该函数支持嵌套。
在该标题中,该参数名称空间空间的名字为layer_name。
该函数用于将变量记录到tensorboard中。用来显示直方图信息。
一般用来显示训练过程中变量的分布情况。
在该标题中,biases的直方图信息被记录到tensorboard的layer_name+"/biases"中。
用来进行标量信息的可视化与显示。
一般在画loss曲线和accuary曲线时会用到这个函数。
在该标题中,loss的标量信息被记录到tensorboard的"loss"中。
将之前定义的所有summary整合在一起。
tf.summary.scalar、tf.summary.histogram、tf.summary.image在定义的时候,也不会立即执行,需要通过sess.run来明确调用这些函数。因为,在一个程序中定义的写日志操作比较多,如果一一调用,将会十分麻烦,所以Tensorflow提供了tf.summary.merge_all()函数将所有的summary整理在一起。
在TensorFlow程序执行的时候,只需要运行这一个操作就可以将代码中定义的所有写summary内容执行一次,从而将所有的summary内容写入。
将summary内容写入磁盘文件,FileWriter类提供了一种用于在给定目录下创建事件文件的机制,并且将summary数据写入硬盘。
在该标题中,summary数据被写入logs文件夹中。
该函数成立前提为:
write = tf.summary.FileWriter("logs/",sess.graph)
add_summary是tf.summary.FileWriter父类中的成员函数;添加summary内容到事件文件,写入事件文件。
在该标题中,result是tf.summary.merge_all()执行的结果,i表示世代数。
该函数用于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:
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的直方图分布:

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:mmqy2019@163.com进行举报,并提供相关证据,查实之后,将立刻删除涉嫌侵权内容。
猜你喜欢
python中,while循环与for循环是经常使用的循环语句,一直到的到结果才会循环结束。但是,也会有一直循环,无法计算出结果的情况出现,这时我们就要跳出循环。本文介绍使用break跳出for循环的两种方法:1、提前定义一个变量,让其为空字符串;2、使用for…else…实现break跳出嵌套的for循环。
本来我一直不知道怎么来更好地优化网页的性能,然后最近做python和php同类网页渲染速度比较时,意外地发现一个很简单很白痴但是 我一直没
很多应用程序都有浏览用户的历史记录的功能,浏览器可以查看最近访问过的网页,现在我们制作了一个简单的猜数字的小游戏,添加历史记录功能,显示用户最近猜过的数字,如何实现呢?跟随小编一起看看吧
这篇文章主要介绍了Python基础之Numpy的基本用法详解,文中有非常详细的代码示例,对正在学习python基础的小伙伴们有非常好的帮助,需要的朋友可以参考下
这篇文章主要介绍了安装python中wordcloud的几种方法,本文通过图文并茂的形式给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
成为群英会员,开启智能安全云计算之旅
立即注册关注或联系群英网络
7x24小时售前:400-678-4567
7x24小时售后:0668-2555666
24小时QQ客服
群英微信公众号
CNNIC域名投诉举报处理平台
服务电话:010-58813000
服务邮箱:service@cnnic.cn
投诉与建议:0668-2555555
Copyright © QY Network Company Ltd. All Rights Reserved. 2003-2020 群英 版权所有
增值电信经营许可证 : B1.B2-20140078 ICP核准(ICP备案)粤ICP备09006778号 域名注册商资质 粤 D3.1-20240008