新的TensorFlow概念

创建简单的机器学习系统需要学习一些新的概念。

优化器

上两节介绍的元素已经提示了TensorFlow是如何完成机器学习的。你已学习了如何用张量操作来定义损失函数。缺少的是你不知道如何用TensorFlow进行梯度下降。尽管可以用TensorFlow元素直接用 Python定义优化算法例如梯度下降。tf.train模块提供了很多优化算法。这些算法可以作为TensorFlow 计算图的节点被添加。

我该使用哪个optimizer?

tf.train里有很多可能的optimizer。包括 tf.train.GradientDescentOptimizer, tf.train.MomentumOptimizer, tf.train.AdagradOptimizer, tf.train.AdamOptimizer,等。这些 optimizers有什么区别呢?几乎所有这些优化器都基于梯度下降的思想。我们前面讲的最简单的梯度下降规则是:

W = W − α∇W

数学上,这种更新规则是很基础的。研究者发现很多快速优化算法不需要过多的额外计算。 tf.train.AdamOptimizer是黙认相对稳健的。(很多优化器对超参数的选择很敏感。初学者最好不要使用复杂的方法,除非掌握了不同优化算法的行为)

Summaries and file writers for TensorBoard

可视化的理解张量程序很有用。TensorFlow团队提供了TensorBoard,可以用以这个目 的。 TensorBoard启动网络服务器(黙认为localhost) 来展示TensorFlow 程序。但是程序员要手工的写日志语句。 tf.train.FileWriter() 指明TensorBoard程序的日志目录。tf.summary 写入TensorFlow 汇总到日志目录。这一章我们只使用 tf.summary.scalar,它汇部标量,跟踪损失函数的值。 tf.summary.merge_all() 是有用的日志助手合并多个汇总到一个汇总。

运行下面的命令在存放源代码文件的目录下创建名为“logs”的目录。

$ mkdir logs

运行TensorBoard并传递“logs”目录的位置作为参数:

#$ tensorboard --logdir=./logs

$ tensorboard --logdir=”logs”

打开浏览器并导航到http://localhost:6006, 这是TensorBoard的黙认URL。

您可以在 Eager Execution 中使用 tf.summary 记录变量摘要。例如,要每 100 个训练步骤记录一次 loss 的摘要,请运行以下代码:

#List3-22

logdir = "./log/"
writer = tf.summary.create_file_writer(logdir)
steps = 1000
with writer.as_default():  # or call writer.set_as_default() before the loop.
  for i in range(steps):
    step = i + 1
    # Calculate loss with your real train function.
    loss = 1 - 0.001 * step
    if step % 100 == 0:
      tf.summary.scalar('loss', loss, step=step)

#List3-23_using_tensorboard.py

import os

import io

import time

import numpy as np

import matplotlib.pyplot as plt

import tensorflow as tf

# Create a visualizer object

#summary_writer = tf.summary.FileWriter('tensorboard', tf.get_default_graph())

# Create tensorboard folder if not exists

if not os.path.exists('tensorboard'):

os.makedirs('tensorboard')

logdir = "./tensorboard"

writer = tf.summary.create_file_writer(logdir)

steps = 1000

with writer.as_default():

    for i in range(steps):

      step = i + 1

      loss = 1 - 0.001 * step

      if step % 100 == 0:

                tf.summary.scalar('loss', loss, step=step)

# Wait a few seconds for user to run tensorboard commands

time.sleep(5)

batch_size = 50

generations = 100

# Create sample input data

x_data = np.arange(1000)/10.

true_slope = 2.

y_data = x_data * true_slope + np.random.normal(loc=0.0, scale=25, size=1000)

# Split into train/test

train_ix = np.random.choice(len(x_data), size=int(len(x_data)*0.9), replace=False)

test_ix = np.setdiff1d(np.arange(1000), train_ix)

x_data_train, y_data_train = x_data[train_ix], y_data[train_ix]

x_data_test, y_data_test = x_data[test_ix], y_data[test_ix]

# Declare placeholders

#x_graph_input = tf.placeholder(tf.float32, [None])

#y_graph_input = tf.placeholder(tf.float32, [None])

# Declare model variables

m = tf.Variable(tf.random.normal([1], dtype=tf.float32), name='Slope')

# Declare model

output = tf.multiply(m, x_data_train, name='Batch_Multiplication')

# Declare loss function (L1)

residuals = output - y_data_train

l1_loss = tf.reduce_mean(tf.abs(residuals), name="L1_Loss")

# Declare optimization function

#my_optim = tf.train.GradientDescentOptimizer(0.01)

#train_step = my_optim.minimize(l1_loss)

# Visualize a scalar

with tf.name_scope('Slope_Estimate'):

tf.summary.scalar('Slope_Estimate', tf.squeeze(m))

我们从命令行运行脚本 01_using_tensorboard.py :

$ python3 List3-23_using_tensorboard.py

我们然后启动Tensorboard程序:

$ tensorboard --logdir="tensorboard"

然后我们导航浏览器到:

http://127.0.0.0:6006

我们可以指明不同的端口号 --port 6007  (运行于端号 6007)。

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

如若内容造成侵权/违法违规/事实不符,请联系英文站点网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

基于python代码的通过爬虫方式实现TK下载视频(2025年6月)

Tk的视频页面通常需要登录才能获取完整数据,但通过构造匿名游客的请求,我们可以绕过登录限制,提取视频的元信息(如标题、ID和播放地址)。核心思路如下: 构造匿名Cookie:通过模拟浏览器的请求,获取Tk服务器分配的游客Cookie。解析网页:利用BeautifulSoup解析HTML,定位…

火山 RTC 引擎14 设置CB

一、火山RTC引擎集成时,设置CB 1、统一设置 void NRTCEngine::SetByteRtcCBS() {UserPublishStreamCallback callback = [this](const std::string& roomId, const std::string& uid, bytertc::MediaStreamType type) {this->OnSigUserPublishStream(roomId, uid, …

BUUCTF在线评测-练习场-WebCTF习题[极客大挑战 2019]PHP1-flag获取、解析

解题思路 打开靶场,提示备份 常见的备份后缀名有.bak,.backup,.zip等等 这里肯定是要扫目录了,不知道是我的问题还是目录扫描工具的问题还是BUUCTF的问题,每次要扫目录能扫出一堆东西来,不管你用什么后缀…

对话云蝠智能:大模型如何让企业呼叫系统从 “成本中心” 变身 “价值枢纽”?

在人工智能重塑企业服务的浪潮中,云蝠智能(南京星蝠科技有限公司旗下品牌)以深厚的技术积累和行业实践,逐步成长为国内智能外呼领域的标杆企业。其发展路径揭示了技术自主创新与场景深度结合的必然性。 一、技术架构:全…

Python-文件管理

1. Open方法 Python 中的文件操作主要通过内置的 open() 函数来完成,该函数用于打开文件,并返回一个文件对象。通过文件对象,可以进行各种文件操作,如读取、写入、关闭等。 使用 open() 方法一定要保证关闭文件对象,即…

高速DIC技术之推进剂样品在霍普金森杆的高速冲击下的变形监测与不同材质头盔在不同冲击位置下的变形测试-VIC-3D HS非接触全场动态应变测量系统

工程领域对材料与结构在极端动态载荷下复杂变形行为的测量有强烈的需求,且这种测量必须是精确、全域、非接触式的,高速DIC技术应运而生并不断得到发展。 常见动态应用包括(但不限于):碰撞测试、爆炸试验、冲击试验、跌…

微算法科技融合Grover算法与统一哈希函数的混合经典-量子算法技术,可在多领域高效提升文本处理效率

随着数据规模的不断扩大,尤其是在大数据和人工智能驱动的应用中,这些经典算法的线性复杂度逐渐成为瓶颈。面对数十亿级别的文本数据,线性时间的算法仍然难以满足实时性的要求。此外,经典算法在处理无序或随机文本时,性…

Spring Boot Security Core

依赖配置&#xff08;Maven&#xff09; xml 复制 下载 运行 <!-- Spring Security Core --> <dependency><groupId>org.springframework.security</groupId><artifactId>spring-security-core</artifactId><version>6.2.5<…

【赵渝强老师】OceanBase云平台OCP

OCP的全称是OceanBase Cloud Platform&#xff0c;即&#xff1a;OceanBase云平台。OCP面向有OceanBase管理需求的中小型用户&#xff0c;提供了基础的主机管理、OceanBase 集群和租户运维等能力。在OCP中主要包含两个组成部分&#xff0c;它们分别是&#xff1a;MetaDB和OCP S…

快速定位Swagger文档请求地址‘/v2/api-docs‘,发生未知异常.NullPointerException:精准定位+根治方案

问题现场&#xff1a;访问 http://localhost:8080/v2/api-docs 时日志报错&#xff1a; 请求地址/v2/api-docs,发生未知异常. java.lang.NullPointerException: nullat springfox.documentation.swagger2.mappers.RequestParameterMapper.bodyParameter(RequestParameterMappe…

图像处理解决方案

证件照小工具微信小程序系统是基于微擎开源生态开发的多功能图像处理平台&#xff0c;专为用户提供便捷的证件照制作及图片编辑服务。微擎系统作为一款基于 PHP 开发的开源应用生态系统&#xff0c;具备快速搭建多端应用的能力&#xff0c;其模块化架构与跨平台兼容性为证件照工…

Qt联合Halcon开发四:【详细图解】海康相机配置并链接测试

1. 下载与安装海康 MVS SDK 首先&#xff0c;访问海康机器人官网的下载中心&#xff0c;选择 “Machine Vision” 模块下的 MVS 软件包。 1. 打开浏览器&#xff0c;进入&#xff1a;https://www.hikrobotics.com/cn/ 2. 下载最新版的 MVS 安装包&#xff08;通常以 MVS_x.x.…

vue3打包后,图片丢失

前言&#xff1a; 在 webpack 中使用 require() 来引入静态图片&#xff0c;但在 vite 中就不行。 代码实现 <template><div><img :src"empty"></div> </template><script setup> // 引入本地图片(注意改成您的路径) import em…

MongoDB 8.0.10 windows11安装记录

最近在学习node&#xff0c;看的教程用的是MongoDB 5.0的&#xff0c;安装上和新版的有一些区别&#xff0c;都安装完后不能直接在C:\Program Files\MongoDB\Server\8.0\bin 这个目录使用mongo 启动&#xff0c;因为都没那文件。 摸索了下弄好了。 下载社区版最新安装包&#…

信息系统项目管理师023:云计算(2信息技术发展,网络安全面试问题

2.关键技术 云计算的关键技术主要涉及虚拟化技术、云存储技术、多租户和访问控制管理、云安全技术等。 1&#xff09;虚拟化技术 虚拟化是一个广义术语&#xff0c;在计算机领域通常是指计算元件在虚拟的基础上而不是真实的基础上运行。虚拟化技术可以扩大硬件的容量&#x…

django csrf的局限性

Django的CSRF保护机制虽被广泛应用&#xff0c;但在实际场景中存在以下关键局限性&#xff0c;需开发者特别注意&#xff1a; 一、内容类型限制&#xff08;Content-Type约束&#xff09; 仅保护特定响应类型 CSRF中间件默认只对text/html和application/xmlxhtml响应生效&#…

如何将缓存存到客户端浏览器上呢

要将缓存存到客户端浏览器&#xff0c;关键是让 浏览器接收到合适的 HTTP 缓存控制响应头。这通常通过 add_header 添加控制头来实现。 ✅ 一般做法&#xff08;强缓存 协商缓存&#xff09;&#xff1a; &#x1f539; 1. 强缓存&#xff1a;使用 Cache-Control 和 Expires …

微软ASR与开源模型分析

一、微软ASR核心能力 1. 支持场景 场景功能实时语音转文本低延迟流式识别&#xff08;会议字幕/直播转录&#xff09;音频文件转文本支持多种格式&#xff08;WAV/MP3等&#xff09;&#xff0c;批量处理长音频定制化模型针对特定行业术语&#xff08;医疗/金融&#xff09;训…

2025下半年软考中级科目难度解析与选科指南

2025年下半年软考中级科目共有6科&#xff0c;包括系统集成项目管理工程师、信息系统管理工程师、信息安全工程师、网络工程师、软件设计师以及多媒体应用设计师。面对众多科目&#xff0c;考生应如何做出选择&#xff1f; 一、考试时间安排 在开始备考之前&#xff0c;了解考…

深度剖析:PPP PRIVATE NETWORK UDP/IP AGGLIGATOR

&#x1f680; 深度剖析&#xff1a;PPP PRIVATE NETWORK UDP/IP AGGLIGATOR &#x1f3d7;️ 一、架构概述 这是一个高性能网络聚合系统&#xff0c;核心功能是通过多路TCP连接隧道化UDP流量&#xff0c;提升网络传输的可靠性和性能。系统采用C编写&#xff0c;基于Boost.Asi…