美文网首页
TensorFlow中的自动微分

TensorFlow中的自动微分

作者: LabVIEW_Python | 来源:发表于2021-09-19 18:54 被阅读0次

    自动微分可以极大的减少开发者实现反向传播算法的代码量,现在各家AI框架都有自动微分功能。TensorFlow的自动微分通过 tf.GradientTape API函数来实现,即计算tf.Variable的梯度。

    TensorFlow 会将在 tf.GradientTape 上下文内执行的相关运算“记录”到“条带(Tape)”上,然后使用条带(Tape)通过反向模式微分计算“已记录的”计算的梯度

    具体代码实现如下:

    • 第一步,利用带条(Tape)记录相关运算:
    w = tf.Variable([[2.0]])
    with tf.GradientTape() as tape:
        loss = w*w*w + 2*w*w
    
    # d_loss = 3w*w + 4*w
    d_loss = tape.gradient(loss, w)
    print(grad)
    

    范例代码:求Sine函数的微分

    import tensorflow as tf 
    import matplotlib.pyplot as plt
    
    x = tf.linspace(-3.14,3.14,200+1)
    
    with tf.GradientTape() as tape:
        tape.watch(x)
        y = tf.sin(x)
    
    dy_dx = tape.gradient(y, x)
    plt.plot(x,y,label='y')
    plt.plot(x,dy_dx, label="dy_dx")
    plt.legend()
    plt.xlabel('x')
    plt.show()
    
    运行结果

    相关文章

      网友评论

          本文标题:TensorFlow中的自动微分

          本文链接:https://www.haomeiwen.com/subject/derpgltx.html