matlab 神经网络自动微分,自动微分机制 - Python与算法之美的个人空间 - OSCHINA - 中文开源技术交流社区...

本文介绍了Tensorflow中的自动微分机制,通过梯度磁带tf.GradientTape记录正向运算并反向求梯度,用于神经网络的参数更新。示例展示了如何计算导数、二阶导数以及利用自动微分和优化器寻找函数最小值的过程。
摘要由CSDN通过智能技术生成

俗话说,万丈高楼平地起,TensorFlow这座大厦也有它的地基。

Tensorflow底层最核心的概念是张量,计算图以及自动微分。

本篇我们介绍自动微分。

神经网络通常依赖反向传播求梯度来更新网络参数,求梯度过程通常是一件非常复杂而容易出错的事情。

而深度学习框架可以帮助我们自动地完成这种求梯度运算。

Tensorflow一般使用梯度磁带tf.GradientTape来记录正向运算过程,然后反播磁带自动得到梯度值。

这种利用tf.GradientTape求微分的方法叫做Tensorflow的自动微分机制。

一,利用梯度磁带求导数

import tensorflow as tf

import numpy as np

# f(x) = a*x**2 + b*x + c的导数

x = tf.Variable(0.0,name = "x",dtype = tf.float32)

a = tf.constant(1.0)

b = tf.constant(-2.0)

c = tf.constant(1.0)

with tf.GradientTape() as tape:

y = a*tf.pow(x,2) + b*x + c

dy_dx = tape.gradient(y,x)

print(dy_dx)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值