Fedora 38下PyTorch从安装到运行的全流程图解

云信安装大师
90
AI 质量分
10 5 月, 2025
3 分钟阅读
0 阅读

Fedora 38下PyTorch从安装到运行的全流程图解

引言

PyTorch是当前最流行的深度学习框架之一,以其动态计算图和易用性著称。本文将详细介绍在Fedora 38系统上从零开始安装PyTorch,并运行第一个深度学习模型的完整流程。无论你是机器学习初学者还是经验丰富的开发者,这篇指南都能帮助你快速搭建PyTorch开发环境。

准备工作

在开始之前,请确保:

  1. 已安装Fedora 38操作系统
  2. 拥有管理员权限(能使用sudo命令)
  3. 至少4GB内存(推荐8GB以上)
  4. 10GB以上可用磁盘空间

第一步:系统更新和基础环境配置

首先更新系统并安装必要的开发工具:

代码片段
# 更新系统软件包
sudo dnf update -y

# 安装开发工具组(包含gcc, make等)
sudo dnf groupinstall "Development Tools" -y

# 安装Python3和相关工具
sudo dnf install python3 python3-pip python3-devel -y

# 验证Python版本(PyTorch需要Python 3.7+)
python3 --version

注意事项
– Fedora默认使用Python3,无需额外配置
– 如果遇到权限问题,可以考虑使用--user参数或虚拟环境

第二步:创建Python虚拟环境(推荐)

为避免包冲突,建议使用虚拟环境:

代码片段
# 安装virtualenv工具
sudo pip3 install virtualenv

# 创建名为pytorch_env的虚拟环境
virtualenv ~/pytorch_env

# 激活虚拟环境
source ~/pytorch_env/bin/activate

激活后,终端提示符前会显示(pytorch_env)标识。

第三步:安装PyTorch及其依赖

PyTorch官方提供了多种安装方式,我们选择pip安装:

代码片段
# PyTorch核心库和CPU版本(适合没有NVIDIA显卡的用户)
pip install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cpu

# NVIDIA GPU用户请使用以下命令(需先安装CUDA驱动):
# pip install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu118

原理说明
torch: PyTorch核心库
torchvision: 提供计算机视觉相关数据集和模型架构
torchaudio: 提供音频处理功能

第四步:验证PyTorch安装

创建一个简单的Python脚本来测试安装是否成功:

代码片段
import torch

print(f"PyTorch版本: {torch.__version__}")
print(f"CUDA是否可用: {torch.cuda.is_available()}") 
print(f"当前设备: {torch.device('cuda' if torch.cuda.is_available() else 'cpu')}")

# 创建一个简单的张量测试
x = torch.rand(2, 3)
print("随机生成的2x3矩阵:")
print(x)

将上述代码保存为test_pytorch.py并运行:

代码片段
python test_pytorch.py

预期输出类似:

代码片段
PyTorch版本: x.x.x+cu118
CUDA是否可用: False 
当前设备: cpu
随机生成的2x3矩阵:
tensor([[0.1234, 0.5678, 0.9012],
        [0.3456, 0.7890, 0.1234]])

第五步:运行第一个PyTorch程序 – MNIST分类器

下面我们实现一个简单的MNIST手写数字分类器:

代码片段
import torch
import torch.nn as nn
import torch.nn.functional as F
import torchvision.datasets as datasets
import torchvision.transforms as transforms
from torch.utils.data import DataLoader

# Step1:定义神经网络模型结构 (使用简单的CNN)
class MNIST_CNN(nn.Module):
    def __init__(self):
        super().__init__()
        self.conv1 = nn.Conv2d(1, 32, kernel_size=5)
        self.conv2 = nn.Conv2d(32,64, kernel_size=5)
        self.fc1 = nn.Linear(1024,256)
        self.fc2 = nn.Linear(256,10)

    def forward(self,x):
        x = F.relu(F.max_pool2d(self.conv1(x),2))
        x = F.relu(F.max_pool2d(self.conv2(x),2))
        x = x.view(-1,1024) # flatten层

        x = F.relu(self.fc1(x))
        x = self.fc2(x)

        return F.log_softmax(x,dim=1)

# Step2:准备数据集和数据加载器    
transform = transforms.Compose([
    transforms.ToTensor(),
    transforms.Normalize((0.1307,),(0.3081,))
])

train_dataset = datasets.MNIST(
    root='./data',
    train=True,
    download=True,
    transform=transform)

train_loader = DataLoader(
    train_dataset,
    batch_size=64,
    shuffle=True)

# Step3:初始化模型、优化器和损失函数    
model = MNIST_CNN()
optimizer = torch.optim.SGD(model.parameters(), lr=0.01)
loss_fn = nn.CrossEntropyLoss()

# Step4:训练循环 (简化版,仅演示5个epoch)    
for epoch in range(5):
    for batch_idx,(data,target) in enumerate(train_loader):
        optimizer.zero_grad()
        output = model(data)
        loss = loss_fn(output,target)
        loss.backward()
        optimizer.step()

        if batch_idx %100 ==0:
            print(f'Epoch:{epoch} Batch:{batch_idx} Loss:{loss.item():.4f}')

print("训练完成!")

将代码保存为mnist_cnn.py并运行:

代码片段
python mnist_cnn.py

代码说明
1. 模型定义: CNN结构包含两个卷积层和两个全连接层
2. 数据处理: MNIST数据会自动下载到./data目录
3. 训练过程: SGD优化器进行5轮训练

GPU加速配置(可选)

如果你有NVIDIA显卡并希望使用GPU加速:

  1. 首先确认驱动已正确安装

    代码片段
    nvidia-smi #查看显卡信息 
    
  2. 检查CUDA是否可用

    代码片段
    import torch 
    print(torch.cuda.is_available()) #应返回True 
    
  3. 修改训练代码中的设备指定

    代码片段
    device = 'cuda' if torch.cuda.is_available() else 'cpu'
    model.to(device) #将模型移动到GPU上 
    
    #在训练循环中记得把数据也移动到GPU上:
    data,target=data.to(device),target.to(device) 
    

PyCharm IDE集成(可选)

对于习惯使用IDE的开发者:

  1. 在PyCharm中创建新项目
  2. 设置Python解释器路径为虚拟环境的Python
    代码片段
    File > Settings > Project > Python Interpreter > Add Interpreter > Existing environment 
    路径指向:~/pytorch_env/bin/python  <br>
    
  3. 添加运行配置
  4. 调试和运行代码

FAQ常见问题解决

Q1: ImportError: libGL.so找不到?

A: Fedora可能需要额外库支持图像处理:

代码片段
sudo dnf install mesa-libGL -y  

Q2: CUDA不可用?

A:确保已正确安装NVIDIA驱动和CUDA工具包。可以尝试重新安装驱动:

代码片段
sudo dnf install akmod-nvidia cuda -y  
reboot  

Q3: pip速度慢?

A:可以更换国内镜像源:

代码片段
pip config set global.index-url https://mirrors.cloud.tencent.com/pypi/simple  

PyTorch学习资源推荐

  1. 官方教程
    2.《Deep Learning with PyTorch》书籍
    3.《动手学深度学习》PyTorch版

总结回顾

本文详细介绍了在Fedora38上从零开始搭建PyTorch环境的完整流程:

基础准备:系统更新、Python环境搭建
虚拟环境:隔离项目依赖的最佳实践
核心安装:通过pip一键式安装PyTorch全家桶
验证测试:简单脚本确认功能正常
实战示例:完整的MNIST分类器实现

通过这篇教程,你应该已经成功搭建了可运行的PyTorch开发环境。接下来可以继续探索更复杂的深度学习模型和应用场景!

原创 高质量