深度学习:Tensorflow变量op和可视化TensorBoard

简介: 深度学习:Tensorflow变量op和可视化TensorBoard

变量op

变量也是一种op,是一种特殊的张量

能够进行存储持久化,它的值就是张量,默认被训练


变量op特点:

1、变量op能够持久化保存,普通张量op是不行的

2、当定义一个变量op的时候,一定要在会话中去运行初始化

3、name参数,在tensorboard显示名字,区分相同op


变量的创建

tf.Variable(initial_value=NOne, name=None, trainable=True)

赋值

assign(value)

返回变量值

eval(session=None)

初始化所有变量op

tf.global_varibles_initializer()

可视化学习TensorBoard

数据序列化 events事件文件

TensorBoard通过读取TensorFlow的事件文件来运行

filewriter = tf.summary.FileWriter("/temp/", graph)

写入事件文件到指定目录(最好是绝对路径),以提供tensorboard使用

开启

$ tensorboard --logdir="/temp/"

打开浏览器 127.0.0.1:6006

代码示例

# -*- coding: utf-8 -*-
import tensorflow as tf
a = tf.constant([1, 2, 3], name="a")
b = tf.constant(3.0, name="b")
c = tf.constant(3.0, name="c")
e = tf.add(b, c, name="add")
var = tf.Variable(tf.random_normal((2, 3), mean=0.0, stddev=1.0), name="name")
print(a, var)
# Tensor("Const:0", shape=(3,), dtype=int32)
# <tf.Variable 'Variable:0' shape=(2, 3) dtype=float32_ref>
# 显示初始化op
init_op = tf.global_variables_initializer()
with tf.Session() as session:
    # 必须运行初始化op
    session.run(init_op)
    # 把程序的graph图结构写入事件文件
    filewriter = tf.summary.FileWriter("temp/", graph=session.graph)
    print(session.run([a, var]))
    # [array([1, 2, 3], dtype=int32),
    # array([[ 1.0577981 , -1.1390951 , -0.12928246],
    #   [ 1.2623566 ,  0.7676961 ,  0.46882382]], dtype=float32)]

增加变量显示

目的:观察模型的参数,损失值等变量值的变化

1、收集变量

# 收集对于损失函数和准确率等单值变量
tf.summary.scalar(name="", tensor)
# 收集高纬度的变量参数
tf.summary.histogram(name="", tensor)
# 收集输入的图片张量能显示图片
tf.summary.image(name="", tensor)

2、合并变量写入事件文件

merged = tf.summary.merge_all()
# 合并运行,每次迭代都需要运行
summary = sess.run(merged)
# 添加,i表示第几次的值
FileWriter.add_summary(summary, i)


相关文章
|
存储 运维 网络协议
服务发现组件:Consul简易攻略
本篇作为Consul攻略的入门导引,帮助小伙伴了解Consul全貌,包含特性、命令操作、架构原理、介绍了Raft、Gossip协议等。
1292 0
服务发现组件:Consul简易攻略
Foo
|
存储 Prometheus 监控
拥抱开源生态:阿里云InfluxDB集成Prometheus查询
前言 Prometheus是CNCF的毕业项目,其生态已成为云原生监控领域的事实标准。Kubernetes集群的指标通过Prometheus格式暴露,很多新项目也直接选择Prometheus格式暴露指标数据,传统应用(比如MySQL, MongoDB,Redis等)在开源社区都有Prometheus Exporter来接入Prometheus生态。 Prometheus内置的tsdb适合存储短
Foo
2622 0
拥抱开源生态:阿里云InfluxDB集成Prometheus查询
|
7月前
|
机器学习/深度学习 小程序 数据挖掘
Multi-Agent 的灵活编排之路
本文探讨了Copilot 3.0架构中规划模块结合DeepSeek R1强化学习(GRPO)的实践,重点分析多智能体架构下大模型如何灵活调度多个智能体解决实际问题。文章从背景、问题分析、Planning角色、难点、效果对比到解决方案进行了深入讲解,并通过实验现象展示了有无思考过程对模型性能的影响。结果显示,GRPO训练后推理长度显著降低,准确率提升7.4个百分点,同时解决了复杂问题与简单问题处理间的平衡问题。
780 11
Multi-Agent 的灵活编排之路
|
Java 应用服务中间件 开发者
【实战指南】Java Socket编程:构建高效的客户端-服务器通信
【6月更文挑战第21天】Java Socket编程用于构建客户端-服务器通信。`Socket`和`ServerSocket`类分别处理两端的连接。实战案例展示了一个简单的聊天应用,服务器监听端口,接收客户端连接,并使用多线程处理每个客户端消息。客户端连接服务器,发送并接收消息。了解这些基础,加上错误处理和优化,能帮你开始构建高效网络应用。
795 10
|
编译器 C语言
动态内存分配与管理详解(附加笔试题分析)(上)
动态内存分配与管理详解(附加笔试题分析)
|
监控 安全 物联网
5G技术的革命性进步及其对社会的影响
5G技术作为移动通信领域的革命性进步,正深刻地影响着我们的生活和社会。它不仅提供了更快的数据传输速率和更低的延迟,还将引领着各个领域的创新和发展。从移动通信、工业、医疗到智能城市,5G技术正在改变着我们的世界,为未来带来更多可能性。然而,我们也需要解决一些挑战,确保5G技术的安全和可持续发展。随着技术的不断进步,5G技术的前景依然充满希望,将为我们的社会带来更多的创新和变革。
1488 1
5G技术的革命性进步及其对社会的影响
|
存储 弹性计算 云计算
深入理解云计算:探索IaaS、PaaS和SaaS服务模型
云计算作为当代信息技术领域的关键驱动力,通过提供弹性计算资源和灵活的服务模型,极大地改变了企业和个人的计算方式。本文深入探讨了云计算的基础概念,着重介绍了三种主要的云计算服务模型:IaaS、PaaS和SaaS。
1638 0
|
网络协议 网络安全 数据安全/隐私保护
🔒SSL免费证书自动申请及续期-Certimate
Certimate 是一款旨在简化 SSL 证书管理的工具,尤其适用于需要维护多个域名的个人或小企业用户。它可以自动申请和续期证书,避免了手动操作的繁琐与易忘问题。Certimate 支持私有部署,确保数据安全,并能通过简单配置自动完成证书申请与续期,无需人工干预。详情及使用文档见:[https://docs.certimate.me](https://docs.certimate.me)。
1724 1
|
SQL 分布式计算 Ubuntu
【Hive】Hive开启远程连接及访问方法
【Hive】Hive开启远程连接及访问方法
4441 0
|
存储 搜索推荐
Rstudio常用快捷键以及窗口操作有用技巧
以下快捷键为平时小编用的比较多的,以前总是记不住这些枯燥的快捷键,只好找小本本记下,想用的时候翻翻本子,用着用着就印在脑子里了。现在整理起来写篇推送还是非常有意义的,这次配上小视频(gif),以便大家记忆。星数(⭐)表示常用指数,满星3颗,星越多越需要记下使用噢!
1718 0
Rstudio常用快捷键以及窗口操作有用技巧