zoukankan      html  css  js  c++  java
  • tensorflow2.0——自动求导GradientTape

    该参数表示是否监视可训练变量,若为False,则无法监视该变量,则输出也为None

     手动添加监视

     

     

    import tensorflow as tf
    
    ############################### tf.GradientTape(persistent,watch_accessed_variables)
    print('###############一元函数求导##############')
    x = tf.Variable(3.)
    # x = tf.constant(3.)
    with tf.GradientTape(persistent = True,watch_accessed_variables = True)as tape:                     #   persistent = True表示可以再次使用这个tape而不会立即销毁
        # tape.watch(x)                           #   手动添加监视
        y = 3 * pow(x, 3) + 2 * x
        z = pow(x,4)
    dy_dx = tape.gradient(y,x)
    dz_dx = tape.gradient(z,x)
    print('y:',y)
    print('y对x的导数为:',dy_dx)
    print('z:',z)
    print('z对x的导数为:',dz_dx)
    print()
    del tape
    print('###############一元函数求二阶导##############')
    x = tf.Variable(10.)
    with tf.GradientTape() as tape1:
        with tf.GradientTape() as tape2:
            y = pow(x,2)
        y2 = tape2.gradient(y,x)
    y3 = tape1.gradient(y2,x)
    print('x**2在x=10的二阶导数为:',y3)
    print()
    
    print('###############多元函数求偏导##############')
    x = tf.Variable(4.)
    y = tf.Variable(2.)
    with tf.GradientTape(persistent = True) as tape:
        z = pow(x,2) + x * y
    # dz_dx = tape.gradient(z,x)
    # dz_dy = tape.gradient(z,y)
    dz_dx,dz_dy = tape.gradient(z,[x,y])
    result = tape.gradient(z,[x,y])
    print('z:',z)
    print('z对x的导数为:',dz_dx)
    print('z对y的导数为:',dz_dy)
    print('result:
    ',result)
    print()
    print('###############对向量求偏导##############')
    x = tf.Variable([[1.,2.,3.]])
    with tf.GradientTape() as tape:
        y = 3 * pow(x,2)
    dy_dx = tape.gradient(y,x)
    print('向量求导dy_dx:',dy_dx)
  • 相关阅读:
    在java中写出完美的单例模式
    Zookeeper的功能以及工作原理
    java面试题之int和Integer的区别
    ActiveMQ面试专题
    并发队列ConcurrentLinkedQueue、阻塞队列AraayBlockingQueue、阻塞队列LinkedBlockingQueue 区别和使用场景总结
    Python requests 指定网卡ip发出请求
    Python 打包发布exe可执行文件
    Power BI 图标设置
    python git 基础操作
    C#通过SFTP协议操作文件
  • 原文地址:https://www.cnblogs.com/cxhzy/p/13399707.html
Copyright © 2011-2022 走看看