手动配置conda 镜像并安装GPU版Pytorch成功
忙了半天即使按照豆包上说的自动配置conda镜像源都没成功最后按照如下所说手动配置终于一下子成功了特此记录下如果你想自己编辑配置文件1. 打开配置文件bash运行conda config --show-sources在C:\Users\Administrator文件夹中打开.condarc文件进行编辑。2. 把内容替换成下面这段清华镜像channels: - defaults show_channel_urls: true default_channels: - https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main - https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/r - https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/msys2 custom_channels: conda-forge: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud msys2: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud bioconda: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud menpo: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud pytorch: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud simpleitk: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud为什么要这么做呢因为若不使用清华的镜像 Conda 默认从国外服务器下载创建环境过程中下载metadata可能会出现卡死的现象。接下来清理缓存conda clean -i三、验证是否配置成功bash运行conda config --show channels如果看到https://mirrors.tuna.tsinghua.edu.cn开头的链接就说明成功了 ✅四、创建环境显卡版本12.5可以选择下面命令安装Pytorch根据显卡要求选择python3.11的环境conda create -n AI_Env python3.11 -y conda activate AI_Env pip install torch2.0.0cu118 torchvision0.15.1cu118 torchaudio2.0.1cu118 -f https://download.pytorch.org/whl/torch_stable.html安装完后使用以下代码进行测试GPU是否已经安装成功。import torch print(fPyTorch 版本: {torch.__version__}) print(fCUDA 是否可用: {torch.cuda.is_available()}) # 如果上面一行输出 True可以再打印一下 GPU 名字 if torch.cuda.is_available(): print(f你的 GPU 是: {torch.cuda.get_device_name(0)})结果如下:PyTorch 版本: 2.0.0cu118 CUDA 是否可用: True 你的 GPU 是: NVIDIA GeForce GTX 1060 6GB五、比较CPU和GPU的速度差异。这个程序自动检测你的电脑有没有NVIDIA GPU有 GPUdevices [cpu, cuda]没 GPUdevices [cpu]然后循环分别在 CPU / GPU 上跑测试import torch import torch.nn as nn import time # 定义一个只有三层的小型网络 class TinyNN(nn.Module): def __init__(self): super().__init__() self.net nn.Sequential( nn.Linear(1000, 2000), nn.ReLU(), nn.Linear(2000, 2000), nn.ReLU(), nn.Linear(2000, 10) ) def forward(self, x): return self.net(x) # 生成随机数据10000个样本每个样本1000维特征 # 目标10000个样本每个样本对应10个类别的标签 X torch.randn(10000, 1000) y torch.randint(0, 10, (10000,)) # 创建损失函数和优化器 criterion nn.CrossEntropyLoss() optimizer torch.optim.SGD devices [cpu, cuda] # 分别在 CPU 和 GPU 上测试 for device in devices: print(f\n--- 训练网络于 {device.upper()} ---) # 将数据和模型移动到指定设备 model TinyNN().to(device) x_dev X.to(device) y_dev y.to(device) # 初始化优化器每次测试都需要重新初始化 optimizer_dev optimizer(model.parameters(), lr0.01) # 预热 if device cuda: for _ in range(5): pred model(x_dev) loss criterion(pred, y_dev) optimizer_dev.zero_grad() loss.backward() optimizer_dev.step() torch.cuda.synchronize() # 正式计时训练100轮 start_time time.time() for epoch in range(100): pred model(x_dev) loss criterion(pred, y_dev) optimizer_dev.zero_grad() loss.backward() optimizer_dev.step() if device cuda: torch.cuda.synchronize() elapsed_time time.time() - start_time print(f训练100轮耗时: {elapsed_time:.4f} 秒)运行后显示如下结果--- 训练网络于 CPU --- 训练100轮耗时: 114.3591 秒 --- 训练网络于 CUDA --- 训练100轮耗时: 9.6692 秒