Tensorflow入门与实战学习笔记(八)--Eager模式

2023-10-31 22:30

本文主要是介绍Tensorflow入门与实战学习笔记(八)--Eager模式,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

目录

1 前言:

2 简介:

2.1 Eager模式方便学习以及模型调试

2.2 Eager模式运行特点

2.3 Eager模式中梯度的计算

3 .Eager模块的演示代码

4 变量与自动微分运算实例

5 自定义训练

注意:测试数据不需要乱序

tf.keras.metrics 汇总计算模块


1 前言:

我们学会使用了keras提供的api实现神经网络,可是由于他封装的太好了,对于自定义的循环与自定义的训练是不友好的

我们可以使用Eage,再循环中使用Eager

2 简介:

TensorFlow的eager模式是一个命令式编程环境,它使得我们可以立即评估操作产生的结果,而无需构建计算图

Eager与图运算模式:

简单的说:图运算就相当于把每一步的绘制出来,Eager则可以直接得出结果

2.1 Eager模式方便学习以及模型调试

Eager模式极大的方便我们使用TensorFlow调试模型,增加了网络调试的灵活程度和tensorflow对于初学者友好性。 在这里我们可以叫它 tensorflow的交互模式

Eager模式提供了一个灵活的研究和实验机器学习平台 提供:
  • 直观的界面 - 自然地构建代码并使用Python数据结构 。
  • 快速迭代小型模型和小型数据。

更容易调试 -在交互式环境中直接检查、运行模型、测试变化。这个过程中代码会即时错误报告

 

自然控制流 - eager模式下使用Python控制流而不是 图控制流,简化了动态模型的创建。

热切执行支持大多数TensorFlow操作和GPU加速。

2.2 Eager模式运行特点

  • eager模式下,TensorFlow操作会立即执行并将其值返回给Python(后面请查看例子)。
  • tf.Tensor对象引用具体值而不是计算图中节点的符号句柄(可以进行修改)。
  • Eager模式下Tensorflow可与NumPy很好地协作。 TensorFlow 数学运算可将Python对象和NumPy数组
  • 转换为tf.Tensor对象。 而 tf.Tensor.numpy方法将对象的值作为NumPy返回 ndarray

2.3 Eager模式中梯度的计算

在Eager模式中,使用tf.GradientTape跟踪计算梯度的操作

由于在每次执行可能发生不同的操作,所有前向传递操作都被记录到Tape上。要计算渐变,就往后播放磁带然后丢弃特定的tf.GradientTape只能计算一个梯度; 后续调用会引发运行时错误(RUNTIMEERROR)。 也可以设置可重复调用

3 .Eager模块的演示代码

 

 

  1. tf.multiply() 两个矩阵中对应元素各自相乘
  2. tf.matmul()将矩阵a乘以矩阵b,生成a * b

4 变量与自动微分运算实例

5 自定义训练

 

未训练的时候

训练之后:

注意:测试数据不需要乱序

 

tf.keras.metrics 汇总计算模块

可以求均值m = tf.keras.metrics.Mean('acc')

enumerate() 函数用于将一个可遍历的数据对象(如列表、元组或字符串)组合为一个索引序列,同时列出数据和数据下标,一般用在 for 循环当中。

这篇关于Tensorflow入门与实战学习笔记(八)--Eager模式的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/318563

相关文章

Golang使用minio替代文件系统的实战教程

《Golang使用minio替代文件系统的实战教程》本文讨论项目开发中直接文件系统的限制或不足,接着介绍Minio对象存储的优势,同时给出Golang的实际示例代码,包括初始化客户端、读取minio对... 目录文件系统 vs Minio文件系统不足:对象存储:miniogolang连接Minio配置Min

Node.js 中 http 模块的深度剖析与实战应用小结

《Node.js中http模块的深度剖析与实战应用小结》本文详细介绍了Node.js中的http模块,从创建HTTP服务器、处理请求与响应,到获取请求参数,每个环节都通过代码示例进行解析,旨在帮... 目录Node.js 中 http 模块的深度剖析与实战应用一、引言二、创建 HTTP 服务器:基石搭建(一

网页解析 lxml 库--实战

lxml库使用流程 lxml 是 Python 的第三方解析库,完全使用 Python 语言编写,它对 XPath表达式提供了良好的支 持,因此能够了高效地解析 HTML/XML 文档。本节讲解如何通过 lxml 库解析 HTML 文档。 pip install lxml lxm| 库提供了一个 etree 模块,该模块专门用来解析 HTML/XML 文档,下面来介绍一下 lxml 库

HarmonyOS学习(七)——UI(五)常用布局总结

自适应布局 1.1、线性布局(LinearLayout) 通过线性容器Row和Column实现线性布局。Column容器内的子组件按照垂直方向排列,Row组件中的子组件按照水平方向排列。 属性说明space通过space参数设置主轴上子组件的间距,达到各子组件在排列上的等间距效果alignItems设置子组件在交叉轴上的对齐方式,且在各类尺寸屏幕上表现一致,其中交叉轴为垂直时,取值为Vert

Ilya-AI分享的他在OpenAI学习到的15个提示工程技巧

Ilya(不是本人,claude AI)在社交媒体上分享了他在OpenAI学习到的15个Prompt撰写技巧。 以下是详细的内容: 提示精确化:在编写提示时,力求表达清晰准确。清楚地阐述任务需求和概念定义至关重要。例:不用"分析文本",而用"判断这段话的情感倾向:积极、消极还是中性"。 快速迭代:善于快速连续调整提示。熟练的提示工程师能够灵活地进行多轮优化。例:从"总结文章"到"用

Spring Security 从入门到进阶系列教程

Spring Security 入门系列 《保护 Web 应用的安全》 《Spring-Security-入门(一):登录与退出》 《Spring-Security-入门(二):基于数据库验证》 《Spring-Security-入门(三):密码加密》 《Spring-Security-入门(四):自定义-Filter》 《Spring-Security-入门(五):在 Sprin

【前端学习】AntV G6-08 深入图形与图形分组、自定义节点、节点动画(下)

【课程链接】 AntV G6:深入图形与图形分组、自定义节点、节点动画(下)_哔哩哔哩_bilibili 本章十吾老师讲解了一个复杂的自定义节点中,应该怎样去计算和绘制图形,如何给一个图形制作不间断的动画,以及在鼠标事件之后产生动画。(有点难,需要好好理解) <!DOCTYPE html><html><head><meta charset="UTF-8"><title>06

学习hash总结

2014/1/29/   最近刚开始学hash,名字很陌生,但是hash的思想却很熟悉,以前早就做过此类的题,但是不知道这就是hash思想而已,说白了hash就是一个映射,往往灵活利用数组的下标来实现算法,hash的作用:1、判重;2、统计次数;

性能分析之MySQL索引实战案例

文章目录 一、前言二、准备三、MySQL索引优化四、MySQL 索引知识回顾五、总结 一、前言 在上一讲性能工具之 JProfiler 简单登录案例分析实战中已经发现SQL没有建立索引问题,本文将一起从代码层去分析为什么没有建立索引? 开源ERP项目地址:https://gitee.com/jishenghua/JSH_ERP 二、准备 打开IDEA找到登录请求资源路径位置

在JS中的设计模式的单例模式、策略模式、代理模式、原型模式浅讲

1. 单例模式(Singleton Pattern) 确保一个类只有一个实例,并提供一个全局访问点。 示例代码: class Singleton {constructor() {if (Singleton.instance) {return Singleton.instance;}Singleton.instance = this;this.data = [];}addData(value)