TensorFlow入门(八、TensorBoard可视化工具的应用)

news2024/11/19 9:37:41

TensorBoard常用函数和类icon-default.png?t=N7T8http://t.csdn.cn/Hqi9c

TensorBoard可视化的过程:

①确定一个整体的图表,明确从这个图表中获取哪些数据的信息

②确定在程序的哪些节点、以什么样的方式进行汇总数据的运算,以记录信息,比如在反向传播定义以后,使用tf.summary.scalar记录损失值的变换

③运行所有的summary节点。由于一个程序中经常会有多个summary节点,为了减少一个一个手动启动的繁琐,可以使用tf.summary.merge_all将所有summary节点合并成一个节点,在启动运行

④使用tf.summary.FileWriter将运行后输出的数据保存到本地磁盘中

⑤运行整个程序,完成执行后,win+R打开终端,输入tensorboard --logdir 文件上一级路径

以下是具体操作:

        示例代码如下:

# -*- coding: utf-8 -*-
"""
Created on Mon Sep 25 20:07:18 2023

@author: ASUS
"""

import tensorflow.compat.v1 as tf
import numpy as np
import matplotlib.pyplot as plt
import os

tf.compat.v1.disable_eager_execution()#这个函数用于禁用 TensorFlow 2 中的即时执行模式,以便能够使用 TensorFlow 1.x 的计算图执行方式。

#1.准备数据
train_X = np.linspace(-1, 1,100)#train_X 是一个从 -1 到 1 的等间距数组,用作输入特征。
train_Y = 5 * train_X + np.random.randn(*train_X.shape) * 0.7#train_Y 是根据 train_X 生成的目标值,在真实值的基础上加上了一些噪声。

#2.搭建模型
#通过占位符定义
X = tf.placeholder("float")#X 和 Y 是 TensorFlow 的占位符(Placeholder),用于在执行时提供输入和标签数据。
Y = tf.placeholder("float")
#定义学习参数的变量
W = tf.Variable(tf.compat.v1.random_normal([1]),name="weight")#W 和 b 是学习参数的变量,可以被模型训练调整。
b = tf.Variable(tf.zeros([1]),name="bias")
#定义运算
z = tf.multiply(X,W) + b#z 是通过将输入特征 X 与权重 W 相乘并加上偏差 b 得到的预测值。
#定义损失函数
cost = tf.reduce_mean(tf.square(Y - z))#cost 是损失函数,计算预测值与真实值之间的平方差的平均值。
#定义学习率
learning_rate = 0.01#learning_rate 是学习率,用来控制优化算法在每次迭代中更新参数的步长。
#设置优化函数
optimizer = tf.train.GradientDescentOptimizer(learning_rate).minimize(cost)#optimizer 是梯度下降优化器,用于最小化损失函数。

#3.迭代训练
#初始化所有变量
init = tf.global_variables_initializer()
#定义迭代参数
training_epochs = 20#training_epochs 是迭代训练的轮数。
display_step = 2#display_step 是控制训练过程中打印输出的步长。

#定义保存路径
savedir = "log4/"

#启动Session
with tf.Session() as sess:#with tf.Session() as sess: 创建一个会话,在该会话中执行计算图操作。
    sess.run(init)#sess.run(init) 运行初始化操作,初始化所有变量。
    
    tf.summary.scalar("loss", cost)
    #合并所有的summary
    merged_summary_op = tf.summary.merge_all()
    #创建summary_write用于写文件
    summary_writer = tf.summary.FileWriter(os.path.join(savedir,'summary_log'),sess.graph)

    
    for epoch in range(training_epochs):
        for(x,y) in zip(train_X,train_Y):
            sess.run(optimizer,feed_dict={X:x,Y:y})#sess.run(optimizer,feed_dict={X:x,Y:y}) 执行一次优化器操作,将当前的输入特征 x 和标签值 y 传入模型。
        summary_str = sess.run(merged_summary_op,feed_dict = {X:x,Y:y})
        summary_writer.add_summary(summary_str,epoch)
        if epoch % display_step == 0:#每隔 display_step 轮迭代打印一次损失值和当前的参数值。
            loss=sess.run(cost,feed_dict={X:train_X,Y:train_Y})
            #测试模型
            print("Epoch:",epoch+1,"cost=",loss,"W=",sess.run(W),"b=",sess.run(b))
    print("Finished!")
    
    #使用 matplotlib 库绘制训练数据点和拟合直线。
    plt.plot(train_X,train_Y,'ro',label='Original data')#绘制原始数据点。
    plt.plot(train_X,sess.run(W)*train_X+sess.run(b),'--',label='Fittedline')#绘制拟合的直线。
    plt.legend()#添加图例。
    plt.show()#显示图形。

#4.利用模型
    print("x=0.2,z=",sess.run(z,feed_dict={X:0.2}))#使用训练好的模型,传入输入特征 0.2 来计算预测值 z。
    

        运行后会生成文件如下

        win+R打开终端,输入tensorboard --logdir C:\Users\ASUS\.spyder-py3\log4\summary_log

        复制其中的http://localhost:6006/,打开浏览器跳转来到tensorboard可视化界面,如下:

Tensorboard显示图片示例icon-default.png?t=N7T8http://t.csdn.cn/Ok1w5

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1046674.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

金蝶云星空与旺店通·企业奇门对接集成其他出库查询打通创建其他出库单

金蝶云星空与旺店通企业奇门对接集成其他出库查询打通创建其他出库单 源系统:金蝶云星空 金蝶K/3Cloud(金蝶云星空)是移动互联网时代的新型ERP,是基于WEB2.0与云技术的新时代企业管理服务平台。金蝶K/3Cloud围绕着“生态、人人、体验”&#…

CTF_BUUCTF_Reverse解题_01earsyre

题目地址:BUUCTF在线评测 拿到题目解压,PE看哈是否加壳,几位的 64位,GCC没加壳,那好办了直接IDA 64淦 这不是flag就出来了吗! 果然是easyea,flag:flag{this_Is_a_EaSyRe} CTF工具包…

传统订货方式和网上企业APP订货方式的差别|网站搭建|小程序开发

传统订货方式和网上企业APP订货方式的差别|网站搭建|小程序开发 1、管货品:实时关注热销和滞销商品的库存订货系统:采购单一键生成入库单,便捷的实现从采购到仓库到销售一体化的进销存管理。 传统模式:进销存管理难:…

工业物联网——定义和主要概念

工业物联网背后的理念是使用工业设施中“哑巴设备”多年来产生的数据。装配线上的智能机器不仅可以更快地捕获和分析数据,且在交流重要信息方面也更快,这有助于更快、更准确地做出业务决策。 信息技术(IT)和运营技术(…

一分钟用手机搞定视频提取伴奏

上台表演需要去掉人声,提取伴奏,这个操作可以直接使用【音分轨】软件中的【视频提取伴奏】功能,接下来教大家具体的操作流程! 第一步:在首页点击【人声分离】,上传需要分离的视频,有三种方式可以…

【python零基础入门学习】python进阶篇之高阶函数

本站以分享各种运维经验和运维所需要的技能为主 《python零基础入门》:python零基础入门学习 《python运维脚本》: python运维脚本实践 《shell》:shell学习 《terraform》持续更新中:terraform_Aws学习零基础入门到最佳实战 《k8…

一键生成,轻松制作个性化瓜分红包活动二维码

在如今竞争激烈的市场中,营销活动成为各个品牌推广的重要手段。而在朋友圈这个信息交流的平台上,如何引起用户的关注和参与,成为了每个营销人员的关注焦点。而打造一个引爆朋友圈的瓜分红包活动,无疑是一种非常有效的方法。接下来…

Win10系统怎么把桌面路径改为其他盘?

Win10系统怎么把桌面路径改为其他盘?Win10系统默认将桌面文件夹路径设置在系统安装盘中,通常是C盘。但是,如果Win10电脑C盘空间不足了,就会影响系统的正常运行。下面小编给大家介绍在Win10系统中将桌面路径改为其他盘的详细方法。…

代码随想录算法训练营第四十一天 | 动态规划 part 3 | 343. 整数拆分、96.不同的二叉搜索树

目录 343. 整数拆分思路代码 96.不同的二叉搜索树思路代码 343. 整数拆分 Leetcode 思路 dp[i] 表示 分拆数字i,可以得到的最大乘积为dp[i]。dp[i] max(dp[i], max((i - j) * j, dp[i - j] * j)) 贪心解法 这里粘贴一下美版 StefanPochmann 老哥的 idea&#…

Host掌控SSD内黑匣子的历史演进

在固态硬盘(SSD)的世界里,一直有一个神秘的“黑盒子”现象。这个现象指的是主机(Host)对SSD的控制能力有限,只能通过既定的接口进行基本的读写操作。但随着技术的不断发展,这个“黑盒子”正在被…

Day-01 从 0 开始搭建一套规范的 Vue3.x 项目工程环境

一、架构搭建 请确保你的电脑上成功安装 Node.js,本项目使用 Vite 构建工具! 查看 Node.js 版本: ps: 需要注意的是vite需要你的node的版本在12以上 node -v // v16.20.1 建议将 Node.js 升级到最新的稳定版本:…

基于Laravel 5.6的运动健身类小程序前后端源码

基于Laravel 5.6的运动健身、健康类小程序前后端源码,一套比较基础的运动健康、健身类小程序源码。朋友自己无聊写的,比较基础,有需要的可以拿去修修改改升级开发一下。 使用宝塔安装,比较省事,PHP相关的扩展需要启用…

车载高速CAN(HighSpeed CAN)通信之CAN Bus Off

本文主要以普及CAN通信基本原理为目的,如有从事相关领域或者有意从事车载嵌入式开发的读友们欢迎留言探讨。 本文含有关键字如下。 CAN Bus Off,Bus Off DTC,Bus Off Recovery CAN Bus Off 连接到CAN网络的通信设备一般称为节点&#xff…

信息安全:恶意代码防范技术原理.

信息安全:恶意代码防范技术原理. 恶意代码的英文是 Malicious Code, 它是一种违背目标系统安全策略的程序代码,会造成目标系统信息泄露、资源滥用,破坏系统的完整性及可用性。 目录: 恶意代码概述: (1&a…

mac openssl 版本到底怎么回事 已解决

在mac 安装node多版本的时候,有可能把原有的 openssl1.1 版本 直接要再一次升级了,无奈的 php环境 编译器是 openssl 1.1 还是 3.0 ,今天来个底朝天的找问题。 brew search openssl 有安装 三个版本。 但是错误提示 是第二个版本。 brew …

知识分享 钡铼网关功能介绍:使用SSLTLS 加密,保证MQTT通信安全

背景 为了使不同的设备或系统能够相互通信,让旧有系统和新的系统可以集成,通信更加灵活和可靠。以及将数据从不同的来源收集并传输到不同的目的地,实现数据的集中管理和分发。 通信网关完美克服了这一难题,485或者网口的设备能通过…

在 Esp32 摄像头上实现边缘脉冲 FOMO 物体检测

轻松在 Esp32 相机上运行边缘脉冲 FOMO 物体检测的世界最佳指南。即使您是初学者 介绍 对象检测是检测图像内感兴趣的对象的任务。直到几年前,由于模型的复杂性和要执行的数学运算的数量惊人,这项任务还需要强大的计算机来完成。 然而,由于像Edge Impulse这样的平台,初学者…

css中常用单位辨析

辨析 px:像素;css中最普遍最常用的单位,不管在何种设备或分辨率上,1px始终代表屏幕上的一个像素。 %:百分比;基于父元素相对属性的百分比。 em:当前字体大小的倍数;基于父元素字体…

HCQ1-1300-D【高速输入】

1高速计数器: 用于记录电机轴位置【编码器信号采集】 2硬件引脚: 总共4个引脚:【A】 ab接编码器信号,或者接近开关信号(需要设置计数器工作模式) 【B】 【Z】就是编码器Z相,转一圈输出1个脉冲…

04-Zookeeper集群详解

上一篇:03-Zookeeper客户端使用 Zookeeper 集群模式一共有三种类型的角色 Leader: 处理所有的事务请求(写请求),可以处理读请求,集群中只能有一个LeaderFollower:只能处理读请求,同时作为 Le…