温馨提示×

CentOS Python机器学习框架怎么用

小樊
47
2025-11-24 02:51:20
栏目: 编程语言

CentOS 上使用 Python 机器学习框架的实操指南

一 环境准备与 Python 安装

  • 更新系统与基础工具(以 CentOS 7 为例):
    • 安装编译工具与基础依赖:sudo yum update -y && sudo yum groupinstall “Development Tools” -y
    • 安装 Python 3pip 与开发头文件:sudo yum install -y python3 python3-pip python3-devel
    • 可选:启用 EPEL 源并安装 OpenBLAS 等数值库:sudo yum install -y epel-release openblas-devel
  • 建议始终在虚拟环境中开发,避免依赖冲突(见下一节)。

二 选择与安装框架

  • 方案 A 原生 venv 虚拟环境(系统自带,轻量)
    • 创建并激活:python3 -m venv ml-env && source ml-env/bin/activate
    • CPU 版 PyTorchpip install torch torchvision torchaudio
    • GPU 版 PyTorch(需已安装匹配版本的 CUDA/cuDNN):例如 CUDA 11.3pip install torch torchvision torchaudio --extra-index-url https://download.pytorch.org/whl/cu113
    • 其他常用库:pip install numpy pandas matplotlib scikit-learn
  • 方案 B Anaconda/Miniconda(依赖管理更强,适合多版本与科学计算栈)
    • 安装 Miniconda(示例):wget https://repo.anaconda.com/miniconda/Miniconda3-latest-Linux-x86_64.sh && bash Miniconda3-latest-Linux-x86_64.sh
    • 创建环境并安装:conda create -n ml python=3.9conda activate ml
    • GPU 版 PyTorch(conda 会自动携带对应 cudatoolkit):conda install pytorch torchvision torchaudio cudatoolkit=11.3 -c pytorch
  • 安装后验证(两版通用):
    • python - <<‘PY’ import torch print(“torch:”, torch.version) print(“cuda:”, torch.cuda.is_available()) PY**

三 快速上手 PyTorch MNIST 示例

  • 训练一个 2 层全连接网络,在 CPU 上即可运行(GPU 会自动利用 CUDA):
    • 代码示例:
      • import torch, torch.nn as nn, torch.optim as optim
      • from torchvision import datasets, transforms
      • transform = transforms.Compose([transforms.ToTensor(), transforms.Normalize((0.5,), (0.5,))])
      • train_ds = datasets.MNIST(root=‘./data’, train=True, download=True, transform=transform)
      • test_ds = datasets.MNIST(root=‘./data’, train=False, download=True, transform=transform)
      • train_loader = torch.utils.data.DataLoader(train_ds, batch_size=64, shuffle=True)
      • test_loader = torch.utils.data.DataLoader(test_ds, batch_size=64, shuffle=False)
      • class Net(nn.Module):
        • def init(self): super().init(); self.fc1 = nn.Linear(28*28, 500); self.fc2 = nn.Linear(500, 10)
        • def forward(self, x): x = x.view(-1, 28*28); x = torch.relu(self.fc1(x)); return self.fc2(x)
      • model = Net(); criterion = nn.CrossEntropyLoss(); optimizer = optim.SGD(model.parameters(), lr=0.01)
      • for epoch in range(5):
        • for data, target in train_loader: optimizer.zero_grad(); output = model(data); loss = criterion(output, target); loss.backward(); optimizer.step()
        • print(f’Epoch {epoch+1}, Loss: {loss.item():.4f}')
      • correct = total = 0
      • with torch.no_grad():
        • for data, target in test_loader: output = model(data); _, pred = torch.max(output, 1); total += target.size(0); correct += (pred == target).sum().item()
      • print(f’Accuracy: {100 * correct / total:.2f}%')

四 GPU 使用与常见问题

  • 驱动与库版本匹配
    • 确保 NVIDIA 驱动CUDAcuDNN 版本互相匹配;安装后用 nvidia-smi 查看驱动与 CUDA 运行时版本。
    • 常见报错如 ImportError: libcublas.so.10.x / libcudnn.so.7 多为版本不匹配或库路径未纳入 LD_LIBRARY_PATH,需对齐版本并配置环境变量(例如在 ~/.bashrc 中添加库路径并 source ~/.bashrc)。
  • 框架安装与验证
    • GPU 版 PyTorch 安装命令需与系统的 CUDA 版本一致(或使用 conda 自动匹配 cudatoolkit);安装后用 torch.cuda.is_available() 验证。
  • 其他框架
    • TensorFlow/Keras 亦可在 CentOS 上使用 pip/conda 安装;GPU 版需匹配 CUDA/cuDNN,安装后用 tf.config.list_physical_devices(‘GPU’) 验证。

0