Eager模式及自定义训练
Tensorflow的eager模式是一个命令式编程环境,它可以使我们立即评估操作的结果,无需构建计算图
Tensorflow默认就是eager模式
import tensorflow as tf
tf.__version__
‘2.0.0’
# 判断是否处于eager模式
tf.executing_eagerly()
True
x = [[2]]
result = tf.matmul(x, x)
print(result)
tf.Tensor([[4]], shape=(1, 1), dtype=int32)
print(result.numpy())
[[4]]
变量操作
# 创建变量
var = tf.Variable(1)
var
<tf.Variable ‘Variable:0’ shape=() dtype=int32, numpy=1>
# 修改变量的值
var.assign(5)
var
<tf.Variable ‘Variable:0’ shape=() dtype=int32, numpy=5>
# 读取变量的值
var.read_value()
<tf.Tensor: id=14, shape=(), dtype=int32, numpy=5>
微分运算
# 变量求微分(必须是float类型)
w = tf.Variable([[1.0]])
# 记录运算过程
with tf.GradientTape() as t:
loss = w * w
print(t.gradient(loss, w))
tf.Tensor([[2.]], shape=(1, 1), dtype=float32)
# 常量求微分
w = tf.constant([[2.0]])
with tf.GradientTape() as t:
# 追踪w的变化
t.watch(w)
loss = w * w
print(t.gradient(loss, w))
tf.Tensor([[4.]], shape=(1, 1), dtype=float32)
# 以上操作只能计算一次微分,要计算多次微分,需要加上参数persistent=True
w = tf.Variable([[1.0]])
# 记录运算过程
with tf.<
Tensorflow Eager模式与自定义训练流程详解

本文介绍了Tensorflow的Eager模式,这是一种命令式编程环境,允许即时评估操作结果。此外,还详细讲解了变量操作、微分运算,并展示了如何使用tf.keras.metrics进行训练评估。同时,文章通过实例演示了自定义训练过程,包括数据预处理、模型构建、训练与测试,以展示如何在Eager模式下训练和调整模型。
最低0.47元/天 解锁文章
704





