当前位置: 首页 > 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/49757.html

相关文章:

  • 义乌购批发网站网站改版
  • seo网站优化及网站推广2021百度新算法优化
  • 怎么用flash做视频网站广安seo外包
  • 外贸 网站推广计划百度推广代理商与总公司的区别
  • 有哪些可以做兼职的网站项目推广网站
  • 区总工会网站建设流程微信软文范例大全100
  • 手机网站怎么做微信登陆百度人工服务在线咨询
  • 高校网站群建设ip反查域名网站
  • 成都 网站备案 幕布拍摄点武汉大学人民医院
  • 做网站流量是什么怎么写软文推广
  • 网站网页建设实训心得体会站长之家域名解析
  • 动易网站开发百度搜索词排名
  • 网站建设指标西安网站开发
  • 宁波seo在线优化公司郑州网络seo公司
  • 网站更换目录名如何做301跳转时事新闻热点
  • 2024新闻热点事件seo查询 站长工具
  • 要解析做邮箱以及网站培训机构连锁加盟
  • 新疆生产建设兵团12师网站电商线上推广
  • 网站建设上市软服业营收破334亿
  • 网站对联模板郑州百度seo关键词
  • seo是付费推广吗如何提高seo关键词排名
  • 工厂宣传片怎么拍seo赚钱方式
  • 世界街景地图客服电话信息流优化师工作内容
  • 织梦电影网站免费模板seo广告优化
  • 企业营销型网站团队上海搜索seo
  • 多媒体应用设计师怎么报考长沙优化网站厂家
  • 中国站长之家域名查询泰安seo推广
  • 兼职工厂网站建设门户网站软文
  • wordpress七牛视频播放杭州网站优化多少钱
  • 企业融资风险及其防范措施seo外链发布软件