Pytorch深度学习(一):线性模型

线性模型

    • 一、线性模型概念
    • 二、实现代码如下:
    • 三、运行结果

一、线性模型概念

Linear Model : y=x*ω
Pytorch深度学习(一):线性模型_第1张图片

机器会随机生成一个a random guess,ω = random value

找一个评估模型LOSS,用loss来评价预测模型与已知模型之间的差别。试图找mean loss(平均损失值)趋于0

Pytorch深度学习(一):线性模型_第2张图片

MSE(Mean Square Error)平均平方误差:
cost(代表所有样本的平均损失误差)
Pytorch深度学习(一):线性模型_第3张图片

二、实现代码如下:

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 forword(x):
    return w*x

#计算损失
def loss(x,y):
    y_pred = forword(x)
    return (y_pred-y)*(y_pred-y)

#用列表来保存权重和权重对应的损失值
w_list = []
mse_list = []


#训练
#w从0.0到4.0  每次加上0.1
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):
        y_pred_val = forword(x_val)  #计算y的预测值
        loss_val = loss(x_val,y_val) #计算损失值
        l_sum +=loss_val
        print('\t',x_val,y_val,y_pred_val,loss_val)  ##每次将x_data和y_data拿出来赋值给x_val和y_val再进行计算。
    print('MSE=',l_sum/3)
    w_list.append(w)
    mse_list.append(l_sum/3)
    
#绘制w和Loss的可视化
plt.plot(w_list,mse_list)
plt.ylabel('Loss')
plt.xlabel('w')
plt.show()

三、运行结果

发现当w=2.0,,输出值和预测值一样,MSE均方误差为0
Pytorch深度学习(一):线性模型_第4张图片
Pytorch深度学习(一):线性模型_第5张图片

你可能感兴趣的:(Pytorch深度学习,python学习,人工智能与机器学习,神经网络,机器学习,pytorch,深度学习)