本文主要是介绍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的交互模式
- 直观的界面 - 自然地构建代码并使用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模块的演示代码
- tf.multiply() 两个矩阵中对应元素各自相乘
- tf.matmul()将矩阵a乘以矩阵b,生成a * b
4 变量与自动微分运算实例
5 自定义训练
未训练的时候
训练之后:
注意:测试数据不需要乱序
tf.keras.metrics 汇总计算模块
可以求均值m = tf.keras.metrics.Mean('acc')
enumerate() 函数用于将一个可遍历的数据对象(如列表、元组或字符串)组合为一个索引序列,同时列出数据和数据下标,一般用在 for 循环当中。
这篇关于Tensorflow入门与实战学习笔记(八)--Eager模式的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!