Pytorch介绍以及AI模型 window 安装下载详解

1、Pytorch介绍

PyTorch 是一个基于 Python 的科学计算库,专门针对深度学习(Deep Learning)而设计。它主要由 Facebook 的人工智能研究团队(FAIR)开发并维护,现在已成为全球最流行的深度学习框架之一。


PyTorch 的核心特点

  1. 动态计算图(Dynamic Computation Graph)

    • 也称为"define-by-run",即计算图在代码运行时动态构建。

    • 这使得调试更直观(可像普通 Python 代码一样使用 printpdb 调试),并允许灵活调整模型结构(如循环神经网络中的可变长度输入)。

  2. Python 原生风格

    • PyTorch 的 API 设计非常贴近 Python 习惯,学习成本较低,易读性强。

    • 与 NumPy 高度兼容,通常只需将 numpy.array 替换为 torch.Tensor 即可。

  3. 强大的 GPU 加速

    • 通过 CUDA 支持,可以轻松将张量计算转移到 GPU 上,大幅提升训练速度。
  4. 自动微分(Autograd)

    • 内置自动求导系统,无需手动计算梯度,只需在张量上设置 requires_grad=True,即可自动跟踪计算并反向传播。
  5. 丰富的生态系统

    • TorchVision(计算机视觉)

    • TorchText(自然语言处理)

    • TorchAudio(音频处理)

    • PyTorch Lightning(简化训练流程的高级封装)

    • Hugging Face Transformers(预训练 NLP 模型)


PyTorch 的主要用途

  1. 学术研究

    • 因其灵活性和易调试性,成为学术界最受欢迎的框架之一,许多新论文的官方实现都基于 PyTorch。
  2. 原型设计与实验

    • 动态图特性使得快速迭代模型结构变得非常方便,适合探索性项目。
  3. 生产部署

    • 通过 TorchScriptONNX 可将模型导出为独立于 Python 的格式,部署到服务器、移动端或嵌入式设备。

    • 配合 TorchServe 可构建高性能推理服务。

  4. 计算机视觉(CV)

    • 图像分类、目标检测、图像生成等(如使用 ResNet、YOLO、GANs)。
  5. 自然语言处理(NLP)

    • 文本分类、机器翻译、语音识别(如 BERT、GPT 的实现)。
  6. 强化学习

    • 得益于动态图的灵活性,适合实现需要动态控制流的强化学习算法。

简单代码示例

复制代码
import torch
import torch.nn as nn

# 1. 定义一个简单的神经网络
class SimpleNet(nn.Module):
    def __init__(self):
        super().__init__()
        self.fc = nn.Linear(10, 5)  # 10维输入 -> 5维输出
        
    def forward(self, x):
        return self.fc(x)

# 2. 创建模型和输入
model = SimpleNet()
x = torch.randn(3, 10)  # 批量大小3, 特征维度10

# 3. 前向传播
output = model(x)
print(output.shape)  # 输出 torch.Size([3, 5])

# 4. 自动梯度示例
x = torch.tensor([2.0], requires_grad=True)
y = x ** 2 + 3
y.backward()
print(x.grad)  # 梯度 dy/dx = 2x → 4.0

与 TensorFlow 的对比

  • PyTorch 更 Pythonic,适合研究和快速实验。

  • TensorFlow 的静态图模式(已支持动态图)在部署和生产优化方面有优势,但 PyTorch 通过 TorchScript 正在迎头赶上。


学习资源

  1. 官方教程pytorch.org/tutorials

  2. 经典课程

    • 斯坦福 CS231n(计算机视觉)

    • 李沐《动手学深度学习》(中文教程,基于 PyTorch)

  3. 实践:在 Kaggle 或 GitHub 上参与开源项目。


PyTorch 是一个灵活、直观且强大的深度学习框架,尤其适合需要快速迭代的研究、原型设计和教育领域。随着生态的成熟,其在工业界的应用也越来越广泛。如果你是深度学习新手,PyTorch 是一个非常好的起点!

2、Pytorch安装(window)

安装前置条件

1.Python 环境已安装

可参考:Python 在 Windows 和 Linux 上的安装指南_windows python安装包-CSDN博客

2.chocolatey 巧克力味插件安装

复制代码
# 1. 安装 Chocolatey(以管理员身份运行 PowerShell)
Set-ExecutionPolicy Bypass -Scope Process -Force
[System.Net.ServicePointManager]::SecurityProtocol = [System.Net.ServicePointManager]::SecurityProtocol -bor 3072
iex ((New-Object System.Net.WebClient).DownloadString('https://community.chocolatey.org/install.ps1'))

# 2. 使用 Chocolatey 安装 Python
choco install python

# 3. 验证安装
python --version



# 4.更新版本

choco upgrade chocolatey

3.pip软件管家安装

复制代码
#cmd 以管理员运行
pip install pip

4.验证插件安装

复制代码
# 以管理员身份运行
pip3 install torch torchvision --index-url https://download.pytorch.org/whl/cu126

验证

为了确保 PyTorch 正确安装,我们可以通过运行示例 PyTorch 代码来验证安装情况。这里我们将构造一个随机初始化的张量。

从命令行输入:

复制代码
# 第一步
python

# 第二步
import torch
x = torch.rand(5, 3)
print(x)

正确输出

复制代码
tensor([[0.3380, 0.3845, 0.3217],
        [0.8337, 0.9050, 0.2650],
        [0.2979, 0.7141, 0.9069],
        [0.1449, 0.1132, 0.1375],
        [0.4675, 0.3947, 0.1426]])

其他输出说明某个插件没装或安装失败了

AI 图形模型主推gpu 我们来一起看下gpu和cpu区别

GPU和CPU的核心区别在于架构设计,这决定了它们在处理不同任务时的效率差异:

核心区别

  1. CPU(中央处理器)

    • 设计目标:通用计算、串行处理

    • 核心特点:少量强大核心(通常4-16个)、复杂控制单元

    • 擅长:逻辑判断、分支预测、单线程性能

  2. GPU(图形处理器)

    • 设计目标:并行计算、图形渲染

    • 核心特点:数千个小型核心、高度并行化

    • 擅长:矩阵运算、浮点计算、批量数据处理

AI模型运行选择

推荐GPU的场景:

深度学习训练 - 需要大量矩阵运算

大规模推理任务 - 如实时图像处理

大语言模型 - 如GPT、LLaMA等

计算机视觉模型 - CNN、Transformer

可能选择CPU的场景:

小规模模型推理 - 轻量级AI应用

边缘设备部署 - 功耗限制严格

预处理/后处理 - 非并行计算任务

内存需求极高 - CPU通常有更大RAM

性能对比

任务类型 GPU优势 CPU优势
矩阵乘法 快10-100倍 适合小矩阵
训练时间 天/小时级 周/月级
能耗比 更高 较低
灵活性 专用优化 通用性强

实际建议

  1. 训练阶段:强烈推荐GPU(NVIDIA卡最佳,CUDA生态完善)

  2. 部署阶段

    • 云端/服务器:GPU或专用AI芯片(TPU、NPU)

    • 移动端:专用AI加速器或优化后的CPU

    • 嵌入式:根据功耗和性能平衡选择

  3. 预算考虑

    • 入门:NVIDIA RTX 4060/4070(8-12GB显存)

    • 专业:RTX 4090、Tesla系列

    • 云服务:按需租用GPU实例(灵活成本)

特殊芯片

除了传统GPU,还有:

  • TPU:Google专为AI设计的芯片

  • NPU:手机/边缘设备的AI加速单元

  • FPGA:可编程硬件,灵活性高

对于大多数AI模型,GPU是更合适的选择,尤其是在训练和大规模推理时。但对特定场景,CPU或专用AI芯片可能是更优解。

3、模型安装导出

.onnx 文件是 Open Neural Network Exchange(开放神经网络交换) 格式的文件。

什么是 .onnx 文件?

核心特性:

  1. 跨框架模型格式 - 可以在不同深度学习框架间转换和共享模型

    • PyTorch → ONNX → TensorFlow

    • TensorFlow → ONNX → MXNet 等

  2. 标准化表示 - 包含:

    • 模型结构(计算图)

    • 模型权重参数

    • 输入输出定义

  3. 高性能推理 - 针对推理进行了优化

离线使用 ONNX 文件

完全可以离线使用!

离线使用的优势:

  1. 无需网络连接 - 模型完全本地化

  2. 快速加载 - 模型已序列化,加载速度快

  3. 部署方便 - 单文件包含所有信息

如何使用:

1. Python 环境
复制代码
import onnxruntime as ort
import numpy as np

# 加载 ONNX 模型
session = ort.InferenceSession("model.onnx")

# 准备输入
input_name = session.get_inputs()[0].name
input_data = np.random.randn(1, 3, 224, 224).astype(np.float32)

# 推理(完全离线)
outputs = session.run(None, {input_name: input_data})
  1. C++ 环境

    #include <onnxruntime_cxx_api.h>

    Ort::Session session(env, "model.onnx", Ort::SessionOptions{});
    // 离线推理...

3. 移动端/嵌入式
  • Android/iOS 均可使用 ONNX Runtime

  • 资源占用少,适合边缘设备

常见使用场景:

生产部署:

复制代码
训练框架(PyTorch/TF) → 导出为 ONNX → 部署到:
├── 服务器(CPU/GPU)
├── 移动端(Android/iOS)
├── 嵌入式设备(树莓派等)
└── Web(通过 ONNX.js)

优点:

  • 一次导出,处处运行

  • 硬件加速支持(CUDA、TensorRT、OpenVINO等)

  • 内存高效 - 单文件包含所有

限制:

相关推荐
水如烟2 小时前
孤能子视角:数字时代的“众“与“独“,“三观“––守护自身“本真性“
人工智能
wjykp2 小时前
part4 反向传播算法(BP算法)
人工智能·算法·机器学习
AndrewHZ2 小时前
【图像处理基石】图像处理领域还有哪些核心挑战与难题?
图像处理·人工智能·算法·计算机视觉·噪声·图像增强·画质增强
极客范儿2 小时前
从快手“12·22”事故出发:AI时代,如何构建对抗自动化攻击的动态免疫体系?
网络·人工智能·自动化
啊阿狸不会拉杆2 小时前
《数字图像处理》实验8-图像识别与分类
图像处理·人工智能·算法·分类·数据挖掘·数字图像处理
Warren982 小时前
MySQL 8 中的保留关键字陷阱:当表名“lead”引发 SQL 语法错误
linux·数据库·python·sql·mysql·django·virtualenv
科技快报2 小时前
联想现场演示天禧AI 3.5多模态交互,YOGA Pro 16 Aura AI元启版提供坚实算力支撑
人工智能·microsoft
week_泽2 小时前
opencv特征检测、关键点、角点检测、特征点检测
人工智能·opencv·计算机视觉
xingzhemengyou12 小时前
Python Lock 详解
开发语言·python