《PyTorch深度学习实践》学习笔记 【3】
学习资源:
《PyTorch深度学习实践》完结合集
三、梯度下降
类似牛顿迭代法/ 二分法,对cost func 求导 , 利用偏导进行迭代,使得cost func 达到最小值。
具体的求导过程
关键迭代式:
课上实例代码【2】
x_data = [1.0, 2.0, 3.0]
y_data = [2.0, 4.0, 6.0]
w = 1.0
#线性函数
def forward(x):
return x * w
#MSE
def cost(xs, ys):
cost = 0
for x, y in zip(xs, ys):
y_pred = forward(x)
cost += (y_pred - y) ** 2
return cost / len(xs)
#求导函数
def gradient(xs, ys):
grad = 0
for x, y in zip(xs, ys):
grad += 2 * x * (x * w - y)
return grad / len(xs)
print('Predict (before training)', 4, forward(4))
#迭代!求w
for epoch in range(100):
cost_val = cost(x_data, y_data)
grad_val = gradient