设计计算图并自动计算
1. numpy和pytorch实现梯度下降法
import numpy as np
import matplotlib.pyplot as plt
#目标函数
def func(x):
return x**2 + 1
#目标函数的梯度
def grad(x):
return x*2
目标函数图像
plot_x = np.linspace(-3,3,140)
plot_y = func(plot_x)
#梯度下降算法参数
learning_rate = 0.01
epsilon = 0.0001
max_iters = 10000
history_x = []
x = 10
for i in range(max_iters):
cur_grad = grad(x)
last_x = x
x = x - learning_rate * cur_grad
history_x.append(x)
if(abs(func(x)-func(last_x))<epsilon):
break
plt.plot(plot_x,plot_y)
plt.plot(np.array(history_x),func(np.array(history_x)),color = ‘r’,marker=’+’)
plt.show()
2.设定初始值
3.求取梯度
4.在梯度方向上进行参数的更新
5.numpy和pytorch实现线性回归
6.pytorch实现一个简单的神经网络
7.参考资料:PyTorch 中文文档 https://pytorch.apachecn.org/docs/1.0/