B站刘二大人-线性回归及梯度下降 Lecture3

系列文章目录

《PyTorch深度学习实践》完结合集-B站刘二大人

Pytorch代码注意的细节,容易敲错的地方

B站刘二大人-线性回归及梯度下降 Lecture3

B站刘二大人-反向传播Lecture4

B站刘二大人-线性回归 Pytorch实现 Lecture 5

B站刘二大人-多元逻辑回归 Lecture 7

B站刘二大人-数据集及数据加载 Lecture 8

B站刘二大人-Softmx分类器及MNIST实现-Lecture 9


文章目录

  • 系列文章目录
  • 前言
  • 一、代码


前言

Lecture 3


自己写的代码跑出来的图是直线,原因:学习率alpha设置的太大,由0.1设置为0.005就会变成曲线

一、代码

import matplotlib.pyplot as plt
import  torch
import numpy as np
import  csv
import os
x_data = [1.0, 2.0, 3.0]
y_data = [2.0, 4.0, 6.0]

def forward(x,w):
    return  x*w

def gradient(xs, ys,w):
    grad = 0
    for(x,y) in zip(xs,ys):
        grad += (x*w-y)*x
    grad = 2*grad/len(xs)
    return grad

def loss(xs, ys, w):
    los = 0
    for(x,y) in zip(xs,ys):
        los += (x*w-y)*(x*w-y)
    los = los/len(xs)
    return  los

w_list = []
mse_list = []
alpha = 0.1
w = 1.0
ite = 100
for i in range(ite):
    los = loss(x_data, y_data, w)
    mse_list.append(los / 3.0)
    w_list.append(w)
    w = w - alpha*gradient(x_data, y_data, w)

plt.plot(w_list,mse_list)
plt.xlabel("w")
plt.ylabel("mse")
plt.show()


B站刘二大人-线性回归及梯度下降 Lecture3_第1张图片
上图学习率0.1
B站刘二大人-线性回归及梯度下降 Lecture3_第2张图片
上图:学习率0.005


你可能感兴趣的:(PyTorch使用,线性回归,python,深度学习)