首页 > 其他分享 >PyTorch 深度学习实践第二讲(线性模型)

PyTorch 深度学习实践第二讲(线性模型)

时间:2022-12-21 17:03:26浏览次数:54  
标签:loss plt val pred list PyTorch 深度 线性 data

写在前面:B站 刘二大人 ,传送门 ​​PyTorch深度学习实践——线性模型​​​​

学习步骤

  • 准备数据集
  • 模型的选择和设计
  • 训练的过程(确定权重)
  • 推理和测试工作(infering)

 Training loss

PyTorch 深度学习实践第二讲(线性模型)_线性回归

备注:详见刘二大人所举例子,针对一个样本

图形绘制

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


def loss(x, y):
y_pred = forward(x)
return (y_pred - y)**2


# 穷举法
w_list = []
mse_list = []
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 = forward(x_val)
loss_val = loss(x_val, y_val)
l_sum += loss_val
print('\t', x_val, y_val, y_pred_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()

课后作业

import numpy as np
import matplotlib.pyplot as plt
from mpl_toolkits.mplot3d import Axes3D
from pylab import mpl #解决中文符号问题
mpl.rcParams["font.sans-serif"] = ["SimHei"]
fig = plt.figure(figsize = (12,8))
ax = Axes3D(fig)

#这里假设函数为y = 3x + 2
x_data = [1.0,2.0,3.0]
y_data = [5.0,8.0,11.0]

def forward(x):
return x * w + b

def loss(x,y):
y_pred = forward(x)
return (y_pred - y) ** 2

mse_list = []
W = np.arange(0.0,4.1,0.1)
B = np.arange(0.0,4.1,0.1)
[w,b] = np.meshgrid(W,B)

l_sum = 0
for x_val, y_val in zip(x_data, y_data):
y_pred_val = forward(x_val)
print(y_pred_val)
loss_val = loss(x_val, y_val)
l_sum += loss_val

surf = ax.plot_surface(w,b,l_sum/3,rstride=1,cstride=1,cmap=plt.get_cmap('rainbow'))
#设置标题
plt.title("3D图")
fig.colorbar(surf,shrink = 0.5,aspect = 5)
plt.show()


标签:loss,plt,val,pred,list,PyTorch,深度,线性,data
From: https://blog.51cto.com/u_15698454/5959992

相关文章

  • 深度学习课程第一章重点梳理
    1.人脑的视觉机理1.1理解人脑的分层世界机理人脑视觉机理:1981年的诺贝尔医学/生理学奖,发现可视皮层是分级的人的视觉系统的信息处理是分级的。从低级的V1区提取边缘特征......
  • 李群和李代数以及线性变换相关笔记
    参考链接:​​https://www.bilibili.com/video/BV1ys411472E?p=5​​Lie’sGroupisGroup,既是一个群,又是流形。群有两种运算群运算群乘......
  • 求二叉树的深度
    求二叉树的深度TimeLimit:1000MSMemorylimit:65536K题目描述已知一颗二叉树的中序遍历序列和后序遍历序列,求二叉树的深度。输入T组数据。每组数据包括两个长......
  • [js] 树结构查找节点,深度优先
    查找节点其实就是一个遍历的过程,遍历到满足条件的节点则返回,遍历完成未找到则返回null。类似数组的find方法,传入一个函数用于判断节点是否符合条件,代码如下:functiontreeFin......
  • 深度生成模型
    邱锡鹏NNDL学习笔记首先应明白什么是生成模型。了解生成模型的两个模块:(概率)密度估计,生成样本(采样)。在密度估计或生成样本的时候,采用神经网络的方法,就是深度生成模型。......
  • 数智管理新动能,深度解读《2022中国指标中台市场研究报告》
    在经济增速放缓的大背景下,激烈的市场竞争,多变的消费需求以及日新月异的技术创新为企业带来高风险的生存环境,疫情的爆发又使企业的生存空间进一步恶化。企业的未来充满不确定......
  • 关于分类的线性模型的讨论
    关于分类的线性模型的讨论1.引言所谓分类模型,是指一类用于解决分类问题的数学模型。分类的目标是将输入变量x分到K个离散的类别Ck中的某一类。最常......
  • PriorityQueue 是线性结构吗?90%的人都搞错了!
    教你如何去判断一种数据结构的物理结构与逻辑结构​​​​其实这个问题的完整描述是:Java中的PriorityQueue实现,其数据的逻辑结构是线性结构吗?其......
  • PyTorch 深度学习实践第一讲
    写在前面:B站刘二大人 传送门​​Pytorch深度学习实践第一讲​​预备知识线性代数和概率论与数理统计(至少知道分布)Python(了解面向对象、类)引言:HumanIntelligence推理能力......
  • 深度学习炼丹-数据处理和增强
    前言一,Normalization概述1.1,Normalization定义1.2,什么情况需要Normalization1.3,DataNormalization方法1.4,示例代码二,normalizeimages2.1,图像normalizat......