忙了半天,即使按照豆包上说的自动配置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 python=3.11 -y conda activate AI_Env pip install torch==2.0.0+cu118 torchvision==0.15.1+cu118 torchaudio==2.0.1+cu118 -f https://download.pytorch.org/whl/torch_stable.html安装完后使用以下代码进行测试GPU是否已经安装成功。
import torch print(f"PyTorch 版本: {torch.__version__}") print(f"CUDA 是否可用: {torch.cuda.is_available()}") # 如果上面一行输出 True,可以再打印一下 GPU 名字 if torch.cuda.is_available(): print(f"你的 GPU 是: {torch.cuda.get_device_name(0)}")结果如下:
PyTorch 版本: 2.0.0+cu118 CUDA 是否可用: True 你的 GPU 是: NVIDIA GeForce GTX 1060 6GB
五、比较CPU和GPU的速度差异。
这个程序自动检测你的电脑有没有NVIDIA GPU,有 GPU:devices = ["cpu", "cuda"],没 GPU:devices = ["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(), lr=0.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 秒