pytorch-2 线性模型

本文介绍了如何使用梯度下降算法优化线性模型,通过Python实现,逐步调整权重参数w,计算并展示Mean Square Error (MSE)随着w的变化。实验涵盖了从初始值0到4.1范围内的w值,详细展示了每一步的预测值和损失。
摘要由CSDN通过智能技术生成
import numpy as np
import matplotlib.pyplot as plt

x_data = [1.0,2.0,3.0]
y_data = [2.0,4.0,6.0]

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

def loss(x,y,w):
    y_pred = forward(x,w)
    print(y_pred,y)
    return pow((y_pred - y),2)
    # return (y_pred - y)*(y_pred - y)

w_list = []
mse_list = [] #Mean Square Error
'''
numpy.arange([start, ]stop, [step, ]dtype=None)
在给定的时间间隔内返回均匀间隔的值。
在半开区间[start, stop)内产生值 (换句话说,包括开始但不包括停止的区间)。
'''
for w in np.arange(0.0,4.1,0.1):
    print('w=',w)
    l_sum = 0
    for x_val,y_val in zip(x_data,y_data):
        #zip() 该函数返回一个以元组为元素的列表,其中第 i 个元组包含每个参数序列的第 i 个元素。
        y_pred_val = forward(x_val,w)
        loss_val = loss(x_val,y_val,w)
        l_sum = l_sum + loss_val
        print('\t',"x_val=",x_val,"y_val=",y_val,"y_pred_val=",y_pred_val,"loss_val=",loss_val)
    print('MSE=',l_sum/3)
    w_list.append(w)
    mse_list.append(l_sum/3)

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



 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值