zoukankan      html  css  js  c++  java
  • TensorFlow Autodiff自动微分

    with tf.GradientTape(persistent=True) as tape:
        z1 = f(w1, w2 + 2.)
        z2 = f(w1, w2 + 5.)
        z3 = f(w1, w2 + 7.)
        z = [z1,z3,z3]
    [tape.gradient(z, [w1, w2]) for z in (z1, z2, z3)]
    

    输出结果

    [[<tf.Tensor: id=56906, shape=(), dtype=float32, numpy=40.0>,
      <tf.Tensor: id=56898, shape=(), dtype=float32, numpy=10.0>],
     [<tf.Tensor: id=56919, shape=(), dtype=float32, numpy=46.0>,
      <tf.Tensor: id=56911, shape=(), dtype=float32, numpy=10.0>],
     [<tf.Tensor: id=56932, shape=(), dtype=float32, numpy=50.0>,
      <tf.Tensor: id=56924, shape=(), dtype=float32, numpy=10.0>]]
    
    with tf.GradientTape(persistent=True) as tape:
        z1 = f(w1, w2 + 2.)
        z2 = f(w1, w2 + 5.)
        z3 = f(w1, w2 + 7.)
        z = [z1,z2,z3]
    tape.gradient(z, [w1, w2])
    

    输出结果

    [<tf.Tensor: id=57075, shape=(), dtype=float32, numpy=136.0>,
     <tf.Tensor: id=57076, shape=(), dtype=float32, numpy=30.0>]
    

    总结:如果对一个listz=[z1,z2,z3]求微分,其结果将自动求和,而不是返回z1z2z3各自对[w1,w2]的微分。

  • 相关阅读:
    python-django学习
    c++异常处理
    Python输入输出
    Python变量
    Python异常处理
    Python起源与发展
    vsftpd基于mysql的认证方式
    vsftpd搭建ftp服务,并实现虚拟用户访问
    httpd结合php的fpm模式
    编译安装apache
  • 原文地址:https://www.cnblogs.com/yaos/p/14014161.html
Copyright © 2011-2022 走看看