【深度学习】求解偏导数

求偏导数

假如有一个函数

f ( x ) = x 0 2 + x 1 2 f(x)=x_0^2+x_1^2 f(x)=x02+x12

这里有两个变量

  • 在计算的过程中有必要区分对哪个变量求导数

表示出来

# 将原函数定义出来
def function_2(x):
    return x[0] ** 2 + x[1] ** 2

代码表示函数还不是困难的

解决求偏导数的思路

新定义只有一个变量的函数

很多思路和方法都是用已知的方法去解决未知的问题

定义一个x1=4的函数

  • 对只有变量x0的函数用求微分

两个临时变式函数写出来

# 对0求偏导的函数的临时函数
def function_tmp0(x0): # x是变量,另一个不重要的变量已经固定好了
    return x0 ** 2 + 4 ** 2


# 对1求偏导的函数的临时函数
def function_tmp1(x1):
    return 3 ** 2 + x1 ** 2

求数值微分的函数

千万要会写,要独立的闭着眼睛都能写出来

# 定义好求数值微分的函数,函数返回的结果值应该是函数的导数值
def numerical_diff(f, x):  # f:对哪个函数求导,x,要求导的自变量是哪个,拿过来,3q
    h = 1e-4
    return (f(x + h) - f(x - h)) / 2 * h

测试

x=np.array([3,4])

# 将同一点的两个偏导数求出来
result0=numerical_diff(function_tmp0,x[0])
result1=numerical_diff(function_tmp1,x[1])

print(result0,'\n',result1)

D:\ANACONDA\envs\pytorch\python.exe C:/Users/Administrator/Desktop/DeepLearning/ch04/wgw_test.py
6.000000000003781e-08 
 7.999999999999119e-08

Process finished with exit code 0

在编码过程中的思考

代码是人写出来的

写的写的就写出来了

  • 不要怕写错
  • 不要怕写出来

最怕的就是不去写,眼高手低

  • 这样永远学不会!

matplot绘制图形

import  numpy as np
import  matplotlib.pylab as plt

x=np.arange(0,6,0.1)
y1=np.sin(x)
y2=np.cos(x)

# 开始绘制图形
plt.plot(x,y1,label='sin')
plt.plot(x,y2,label='cos',linestyle='--')
plt.title('sin & cos')
plt.xlabel('x')
plt.ylabel('y')
plt.legend() # 绘制图例

plt.show()

2022年11月29日17:07:00,亲自码了一遍,感觉好多了

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

王摇摆

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值