PyTorch 深度学习实践 第2讲:MSE损失函数

代码说明:

1.依次输入变量w:函数forward()中变量w由for循环中的区间间隔0.1传入

2.在固定各个w中:for循环中嵌套 计算预测值 计算样本损失值 各个样本的损失值求和 计算均方差

3.添加结果w,mse到列表中

4.绘制图像

视频链接

#导包
import numpy as np
import matplotlib.pyplot as plt

#准备训练数据(1,2)(2,4)(3,6)
x_data = [1.0, 2.0, 3.0]
y_data = [2.0, 4.0, 6.0]

#定义线性模型:w是权重
def forward(x):
    return w * x#乘积计算y的预测值

#定义损失函数
def loss(x,y):
    y_pred = forward(x) #调用模型计算y的预测值
    return (y_pred - y)**2
#穷举法
w_list = []#存放许多权重w
mse_list = []#save the cost values of each 𝝎.存放每次w后计算的的mse


#计算在区间 [0.0, 0.1, 0.2, … , 4.0]的 cost value
for w in np.arange(0.0, 0.4 ,0.1):#w从0-4区间,间隔0.1中依次试验
    print("w=", w)
    l_sum = 0
	
#对于在训练集的每个样本,损失函数的值都要被计算出来
#注意: 代价函数是损失函数的求和 Value of cost function is the sum of loss 
function
    for x_val, y_val in zip(x_data, y_data):
        y_val_pred = forward(x_val)#计算验证集的y预测值
        loss_val = loss(x_val, y_val)#计算各个样本的损失值
        l_sum +=loss_val#所有样本损失值相加
        print('\t',x_val, y_val, y_val_pred, loss_val)
    print('MSE=', l_sum/3)#计算均方差
    w_list.append(w)#在列表中添加权重与mse的结果
    mse_list.append(l_sum/3)

image

#绘制图形
plt.plot(w_list, mse_list)
plt.ylabel('Loss')#纵坐标y
plt.xlable('w')#横坐标x
plt.show()

image

知识点补充:
1.元组与列表的区别

列表:动态数组,可变且可以重设长度(改变其内部元素的个数)。

元组:静态数组,不可变,且其内部数据一旦创建便无法改变。

元组缓存于Python运行时环境,这意味着我们每次使用元组时无须访问内核去分配内存

2.zip使用方法:结果是列表,元素是元组(由每个列表下表对应的元素组成)

a=[1,2,3]

b=[4,5,6]

c=[7,8,9]

zz=zip(a,b,c) print(zz)

输出:[(1, 4, 7), (2, 5, 8), (3, 6, 9)]
公式:

image

posted @   Ling22  阅读(1088)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
点击右上角即可分享
微信分享提示