当前位置: 首页 > wzjs >正文

陕西建设银行网站鸣蝉智能建站

陕西建设银行网站,鸣蝉智能建站,营销型手机网站制作,注册网站域名需要什么系列文章: PyTorch 基础学习(1) - 快速入门 PyTorch 基础学习(2)- 张量 Tensors PyTorch 基础学习(3) - 张量的数学操作 PyTorch 基础学习(4)- 张量的类型 PyTorch 基础学…

系列文章:
PyTorch 基础学习(1) - 快速入门
PyTorch 基础学习(2)- 张量 Tensors
PyTorch 基础学习(3) - 张量的数学操作
PyTorch 基础学习(4)- 张量的类型
PyTorch 基础学习(5)- 神经网络

介绍

PyTorch学习,我们从AI的hello world程序(线性回归)开始,线性回归就通过一系列输入x和输出y,计算y = wx + b公式,w和b的合理值,训练后,就可以通过模型计算任意输入x,得到y值。

PyTorch 快速入门:线性回归

1. 环境准备
  • 安装 PyTorch

    • 访问 PyTorch 官网,选择适合你的操作系统和 Python 版本的安装命令。通常可以通过 pip 安装:
    pip install torch
    
2. 基本概念
  • 张量 (Tensor):

    • 类似于 NumPy 数组,但可以在 GPU 上运行以加速计算。
    • 是 PyTorch 中数据操作的基本单位。
    • 就是一维或多位数组,在线性回归中就是输入x数组和输出y数组
  • 自动微分 (Autograd):

    • 自动计算张量的梯度,这在训练机器学习模型时非常有用。
    • 就是通过对比结果调整w和b的值,逐渐趋于合理。
  • 神经网络 (Neural Networks):

    • 使用 torch.nn 模块来构建和训练模型。
    • 就是加载模型,torch集成了线性回顾模型
3. 线性回归模型实例

我们将通过一个简单的线性回归示例来介绍 PyTorch 的基本用法。目标是拟合一个线性关系 ( y = 2x )。

线性回归背景

线性回归是用于建模两个变量之间关系的基本统计技术。它假设两个变量之间的关系是线性的,可以用下面的公式表示:

[ y = wx + b ]

  • ( w ) 是权重(slope),决定了输入 ( x ) 如何影响输出 ( y )。
  • ( b ) 是偏置(intercept),是输出值在输入为 0 时的偏移量。
代码实现与详细注解
import torch
import torch.nn as nn
import torch.optim as optim# 数据
# 我们创建了一些简单的训练数据。x 是输入张量,y 是目标输出张量。
x = torch.tensor([[1.0], [2.0], [3.0], [4.0]], dtype=torch.float32)
y = torch.tensor([[2.0], [4.0], [6.0], [8.0]], dtype=torch.float32)# 模型
# 定义一个简单的线性模型,输入和输出都是一维的。
# nn.Linear(1, 1) 意味着我们有一个输入特征和一个输出特征。
model = nn.Linear(1, 1)# 损失和优化器
# 损失函数用于衡量模型预测值与实际值之间的差异。
# 这里使用均方误差损失(MSE),适合用于回归问题。
criterion = nn.MSELoss()# 优化器用于更新模型的参数以减少损失。
# 这里使用随机梯度下降(SGD)优化器,学习率设为 0.01。
optimizer = optim.SGD(model.parameters(), lr=0.01)# 训练
epochs = 1000  # 训练的轮数
for epoch in range(epochs):# 前向传播:通过模型计算预测值outputs = model(x)# 计算损失:比较预测值和实际值loss = criterion(outputs, y)# 反向传播和优化optimizer.zero_grad()  # 清除之前的梯度loss.backward()  # 反向传播计算梯度optimizer.step()  # 更新模型参数# 每 100 个 epoch 打印一次损失if (epoch + 1) % 100 == 0:print(f'Epoch [{epoch + 1}/{epochs}], Loss: {loss.item():.4f}')# 测试
# 关闭梯度计算,以提高计算效率,因为我们不再需要计算梯度
with torch.no_grad():# 使用训练好的模型进行预测predicted = model(torch.tensor([[5.0]]))# 打印预测结果print(f'Predicted value for input 5.0: {predicted.item():.4f}')

输出:

......
Epoch [800/1000], Loss: 0.0006
Epoch [900/1000], Loss: 0.0003
Epoch [1000/1000], Loss: 0.0002
Predicted value for input 5.0: 9.9769

详细解读

  • 数据准备:

    • xy 是一组简单的线性数据对,表示 ( y = 2x ) 的关系。我们使用 PyTorch 的 tensor 创建张量数据。
  • 模型定义:

    • nn.Linear(1, 1) 定义了一个线性层,该层有一个输入节点和一个输出节点,表示简单的线性回归模型。
  • 损失函数和优化器:

    • 损失函数: nn.MSELoss() 用于计算模型预测值与真实目标值之间的均方误差。
    • 优化器: optim.SGD 是一种优化算法,用于更新模型参数。学习率 lr=0.01 决定了每次参数更新的步长。
  • 训练过程:

    • 通过一个循环进行多次迭代,每次迭代都包括前向传播、计算损失、反向传播和参数更新。
    • optimizer.zero_grad() 清除之前的梯度。
    • loss.backward() 计算当前损失相对于参数的梯度。
    • optimizer.step() 更新模型参数以最小化损失。
  • 测试模型:

    • torch.no_grad() 禁用梯度计算以提高计算效率,因为我们不需要更新参数。
    • 使用训练好的模型进行预测,并打印结果。
http://www.dtcms.com/wzjs/255976.html

相关文章:

  • 网站注册信息查询seo入门书籍
  • 做网站做本地服务器吗东莞网络优化哪家公司好
  • 深圳做网站平台维护的公司个人网站网址
  • 美食网站建设策划书免费网站软件
  • 虎门有没有做网站公司百度平台营销
  • 免费的公司网站怎么做站长统计app软件
  • 南宁营销型网站建设最吸引人的引流话术
  • 怎样制作公司网站熊猫关键词工具
  • 做网店哪个网站批发热搜词工具
  • 微信分销网站开发谷歌账号注册
  • 企业品牌营销型网站建设优化模型数学建模
  • 做模拟人生类的游戏下载网站新网站如何推广
  • 注册的网站网站服务器失去响应
  • 安徽大学电子信息工程学院官方网山西网络营销seo
  • 沧州市做网站郑州seo技术服务
  • 有关网站建设的电子商务论文百度 竞价排名
  • 龙岩天宫山天气预报seo一个月工资一般多少
  • 全国建设工程信息网站学做网站培训班要多少钱
  • 个人网站做导购要什么经营许可全网营销推广系统
  • 学做网站要懂英语吗百度小说app下载
  • wordpress做门户网站企业官网怎么做
  • 重庆奉节网站建设公司推荐搜狗站长工具平台
  • 企业网站系统排名企业如何进行品牌推广
  • 做网站套模板百度网盘账号登录入口
  • 劳动服务公司网站源码推广产品怎么发朋友圈
  • 南阳专业做网站云浮新增确诊病例30例
  • 山东省建设工程管理局网站优化外包服务公司
  • 做淘客网站需要多大的空间站长工具介绍
  • ppt做的模板下载网站有哪些seo免费优化网址软件
  • 被关闭的设计网站百度网址大全网址导航