【自动求梯度】

博客围绕TensorFlow2自动求梯度展开,介绍了一个简单例子,涉及tf.assgin函数的五个参数,以及tf.Variable在图变量存在与不存在时的不同作用,还提及了求导过程和对Python控制流求梯度。

自动求梯度



一个简单的例子

tf.assgin 用法
该函数共有五个参数,分别是:被赋值的变量ref、要分配给变量的值value、是否验证形状validate_shape、是否进行锁定保护use_locking、名称name。

def assign(ref, value, validate_shape=None, use_locking=None, name=None)

tf.variable
tf.Variable当指定名称的图变量已经存在时表示获取它,当指定名称的图变量不存在时表示定义它

tf.Variable.init(initial_value, trainable=True, collections=None, validate_shape=True, name=None)

求导过程如下

x = tf.reshape(tf.Variable(range(4), dtype=tf.float32),(4,1))
x
with tf.GradientTape() as t:
    t.watch(x)
    y = 2 * tf.matmul(tf.transpose(x), x)
    
dy_dx = t.gradient(y, x)
dy_dx

对python控制流求梯度

def f(a):
    b = a * 2
    while tf.norm(b) < 1000:
        b = b * 2
    if tf.reduce_sum(b) > 0:
        c = b
    else:
        c = 100 * b
    return c

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值