热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

pythontensorflowtensorboard代码

importtensorflowastf'''1、scalar(标量)2、image3、audio4、histogram5、graph'&#

import tensorflow as tf
'''
1、scalar(标量)
2、image
3、audio
4、histogram
5、graph
'''
##可视化
#with tf.variable_scope("foo",reuse=tf.AUTO_REUSE):
# with tf.device("/cpu:0"):
# x_init1 = tf.Variable(name="init_x",dtype=tf.float32,initial_value=tf.random_normal(shape=[10]))
# x = tf.Variable(initial_value=x_init1,name='x')
# y = tf.constant(3.0)
# z = x+y
#
#with tf.variable_scope("bar"):
# a = tf.constant(3.0)+4.0
#
#w = z*a
#
##开始记录信息
#tf.summary.scalar(name='scalar_init_x',tensor=x_init1)
#tf.summary.scalar(name='scalar_x',tensor=x)
#tf.summary.scalar(name='scalar_y',tensor=y)
#tf.summary.scalar(name="scalar_z",tensor=z)
#tf.summary.scalar(name='scalar_w',tensor=w)
#
##更新操作
#assign_op = tf.assign(ref=x,value=x+1)
#with tf.control_dependencies([assign_op]):
# with tf.device("/gpu:0"):
# out = x*y
# tf.summary.scalar("scalar_out",out)
#
#
#with tf.Session(cOnfig=tf.ConfigProto(log_device_placement=True,allow_soft_placement=True)) as sess:
# #merge all summery
# merged_summary = tf.summary.merge_all()
# #得到输出到文件的对象
# writer = tf.summary.FileWriter('./result',sess.graph)
#
# #变量全局初始化
# sess.run(tf.global_variables_initializer())
#
# #print
# for i in range(1,5):
# #summary = sess.run(merged_summary)
# r_out,r_x,r_w = sess.run([out,x,w])
# #writer.add_summary(summary,i)
# print("{},{},{}".format(r_out,r_x,r_w))
import numpy as np
def add_layer(inputs,in_size,out_size,n_layer,activation_funtion=None):
layer_name='layer%s'%n_layer
with tf.name_scope('layer'):
with tf.name_scope('weight'):
Weights=tf.Variable(tf.random_normal([in_size,out_size]),name='W')
tf.summary.histogram(layer_name+'/Weights',Weights) #各层网络权重,偏置的分布,用histogram_summary函数
with tf.name_scope('biases'):
biases=tf.Variable(tf.zeros([1,out_size])+0.1,name='b')
tf.summary.histogram(layer_name+'/biases',biases)
with tf.name_scope('Wx_plus_b'):
Wx_plus_b=tf.matmul(inputs,Weights)+biases #inputs与weight 顺序不能换
if activation_funtion is None:
output=Wx_plus_b
else:
output=activation_funtion(Wx_plus_b)
tf.summary.histogram(layer_name+'/output',output)
return output

x_data = np.linspace(-1,1,300, dtype=np.float32)[:, np.newaxis]
noise = np.random.normal(0, 0.05, x_data.shape).astype(np.float32)
y_data = np.square(x_data) - 0.5 + noise
with tf.name_scope('inputs'):
xs=tf.placeholder(tf.float32,[None,1],name='x_in')
ys=tf.placeholder(tf.float32,[None,1],name='y_in')

l1=add_layer(xs,1,10,n_layer=1,activation_funtion=tf.nn.relu)
prediction=add_layer(l1,10,1,n_layer=2,activation_funtion=None)

# loss=tf.reduce_mean(tf.reduce_sum(tf.square(ys-prediction),
# reduction_indices=[1]))
with tf.name_scope('loss'):
loss=tf.reduce_mean(tf.square(ys-prediction))
tf.summary.scalar('loss',loss) #数值如学习率,损失函数用scalar_summary函数,tf.scalar_summary(节点名称,获取的数据)
optimizer=tf.train.GradientDescentOptimizer(0.1)
with tf.name_scope('train'):
train=optimizer.minimize(loss)

#变量全局初始化
init = tf.global_variables_initializer()
sess=tf.Session()
sess.run(init)
#整个图经常需要检测许许多多的值,也就是许多值需要summary operation,一个个去run来启动太麻烦了,所以就合并所有获得的值
merged=tf.summary.merge_all()#合并所有的summary data的获取函数,merge_all 可以将所有summary全部保存到磁盘,以便tensorboard显示。如果没有特殊要求,一般用这一句就可一显示训练时的各种信息了。
writer=tf.summary.FileWriter("logs/",sess.graph)#把图保存到一个路径,FileWriter从tensorflow获取summary data,然后保存到指定路径的日志文件中
for i in range(1000):
sess.run(train,feed_dict={xs:x_data,ys:y_data})
if i%50==0:
#summary的操作对于整个图来说相当于是外设,因为tensorflow是由结果驱动的,而图的结果并不依赖于summary操作,所以summary操作需要被run
rs=sess.run(merged,feed_dict={xs:x_data,ys:y_data})#运行所有合并所有的图,获取summary data函数节点和graph是独立的,调用的时候也需要运行session
writer.add_summary(rs,i)#把数据添加到文件中,每一次run的信息和得到的数据加到writer里面,主要是描述数据变化,所以要这样,若是只有流图,就不需要这样

# print(sess.run(loss,feed_dict={xs:x_data,ys:y_data}))

 



推荐阅读
  • 关于如何快速定义自己的数据集,可以参考我的前一篇文章PyTorch中快速加载自定义数据(入门)_晨曦473的博客-CSDN博客刚开始学习P ... [详细]
  • 代码如下:#coding:utf-8importstring,os,sysimportnumpyasnpimportmatplotlib.py ... [详细]
  • 超级简单加解密工具的方案和功能
    本文介绍了一个超级简单的加解密工具的方案和功能。该工具可以读取文件头,并根据特定长度进行加密,加密后将加密部分写入源文件。同时,该工具也支持解密操作。加密和解密过程是可逆的。本文还提到了一些相关的功能和使用方法,并给出了Python代码示例。 ... [详细]
  • Python教学练习二Python1-12练习二一、判断季节用户输入月份,判断这个月是哪个季节?3,4,5月----春 ... [详细]
  • 在本教程中,我们将看到如何使用FLASK制作第一个用于机器学习模型的RESTAPI。我们将从创建机器学习模型开始。然后,我们将看到使用Flask创建AP ... [详细]
  • 本文由编程笔记#小编为大家整理,主要介绍了logistic回归(线性和非线性)相关的知识,包括线性logistic回归的代码和数据集的分布情况。希望对你有一定的参考价值。 ... [详细]
  • vue使用
    关键词: ... [详细]
  • YOLOv7基于自己的数据集从零构建模型完整训练、推理计算超详细教程
    本文介绍了关于人工智能、神经网络和深度学习的知识点,并提供了YOLOv7基于自己的数据集从零构建模型完整训练、推理计算的详细教程。文章还提到了郑州最低生活保障的话题。对于从事目标检测任务的人来说,YOLO是一个熟悉的模型。文章还提到了yolov4和yolov6的相关内容,以及选择模型的优化思路。 ... [详细]
  • 本文讨论了一个关于cuowu类的问题,作者在使用cuowu类时遇到了错误提示和使用AdjustmentListener的问题。文章提供了16个解决方案,并给出了两个可能导致错误的原因。 ... [详细]
  • sklearn数据集库中的常用数据集类型介绍
    本文介绍了sklearn数据集库中常用的数据集类型,包括玩具数据集和样本生成器。其中详细介绍了波士顿房价数据集,包含了波士顿506处房屋的13种不同特征以及房屋价格,适用于回归任务。 ... [详细]
  • 也就是|小窗_卷积的特征提取与参数计算
    篇首语:本文由编程笔记#小编为大家整理,主要介绍了卷积的特征提取与参数计算相关的知识,希望对你有一定的参考价值。Dense和Conv2D根本区别在于,Den ... [详细]
  • 第四章高阶函数(参数传递、高阶函数、lambda表达式)(python进阶)的讲解和应用
    本文主要讲解了第四章高阶函数(参数传递、高阶函数、lambda表达式)的相关知识,包括函数参数传递机制和赋值机制、引用传递的概念和应用、默认参数的定义和使用等内容。同时介绍了高阶函数和lambda表达式的概念,并给出了一些实例代码进行演示。对于想要进一步提升python编程能力的读者来说,本文将是一个不错的学习资料。 ... [详细]
  • 本文讨论了如何使用GStreamer来删除H264格式视频文件中的中间部分,而不需要进行重编码。作者提出了使用gst_element_seek(...)函数来实现这个目标的思路,并提到遇到了一个解决不了的BUG。文章还列举了8个解决方案,希望能够得到更好的思路。 ... [详细]
  • 一、死锁现象与递归锁进程也是有死锁的所谓死锁:是指两个或两个以上的进程或线程在执行过程中,因争夺资源而造成的一种互相等待的现象,若无外力作 ... [详细]
  • 移动–镜像y轴的视频文件剪辑原文:https://www. ... [详细]
author-avatar
aaaaaa师太_667
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有