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)
#绘制图形
plt.plot(w_list, mse_list)
plt.ylabel('Loss')#纵坐标y
plt.xlable('w')#横坐标x
plt.show()
知识点补充:
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)]
公式:
分类:
机器学习
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本