境搭建:CPU/GPU虛擬環(huán)境與編輯器配置實(shí)戰(zhàn))
配環(huán)境這件事在深度學(xué)習(xí)方向幾乎是“勸退率”最高的一步。很多人不是被模型難倒而是倒在 Anaconda 下載、PyTorch 裝錯版本、GPU 明明有卻用不上、編輯器里解釋器配置混亂這些環(huán)節(jié)上。這篇文章的目的很簡單把 2026 年仍然實(shí)用的 Anaconda PyTorch 雙版本 編輯器一站式環(huán)境搭建流程完整過一遍。所謂“雙版本”不是指裝兩個 Python而是在同一臺機(jī)器上維護(hù)兩套獨(dú)立虛擬環(huán)境一套 CPU 版 PyTorch用于日常調(diào)試、低算力跑通代碼一套 GPU 版 PyTorch用于實(shí)際訓(xùn)練和推理。這樣做的最大好處是互不污染、隨時(shí)切換。這篇文章會覆蓋Anaconda 下載安裝與源配置、conda 虛擬環(huán)境創(chuàng)建、PyTorch CPU/GPU 雙版本安裝命令、CUDA 驅(qū)動版本判斷、PyCharm 和 VS Code 的解釋器配置、第一段 PyTorch 代碼驗(yàn)證、顯存占用觀察方法以及高頻報(bào)錯排查。整個流程同樣適用于 Windows、Linux 和 macOS核心命令幾乎一致只有少數(shù)步驟需要按平臺微調(diào)。如果你正在準(zhǔn)備讀論文復(fù)現(xiàn)、跑課程設(shè)計(jì)、做畢設(shè)實(shí)驗(yàn)或者想把自己的老筆記本利用起來先跑通訓(xùn)練流程這套流程可以直接照抄。需要提前說明的一點(diǎn)Anaconda 和 PyTorch 的版本迭代很快本文提供的是通用方法和可靠命令模板。實(shí)際安裝時(shí)以官方最新穩(wěn)定版為準(zhǔn)但安裝思路不會變。1. 核心能力速覽能力項(xiàng)說明覆蓋內(nèi)容Anaconda 安裝、conda 虛擬環(huán)境、PyTorch CPU/GPU 雙版本、編輯器集成操作系統(tǒng)支持Windows 10/11、Ubuntu 等主流 Linux 發(fā)行版、macOS硬件要求CPU 版任意 x86_64 或 arm64 處理器GPU 版NVIDIA 顯卡 對應(yīng)驅(qū)動顯存需求不固定取決于模型大小PyTorch 本身不額外占用顯存只有運(yùn)行模型時(shí)才有占用Python 管理由 Anaconda 自帶虛擬環(huán)境可指定 Python 3.8 至 3.12 等版本啟動方式Anaconda Prompt、PowerShell、終端編輯器內(nèi)直接選擇解釋器運(yùn)行是否支持 API不涉及本文是開發(fā)環(huán)境搭建是否支持批量任務(wù)不涉及本文重點(diǎn)是讓本地環(huán)境可運(yùn)行 PyTorch適合場景課程作業(yè)、論文復(fù)現(xiàn)、算法實(shí)驗(yàn)、小型模型訓(xùn)練與測試2. 適用場景與使用邊界這套環(huán)境最核心的價(jià)值是解決“多項(xiàng)目、多依賴、多版本”之間的沖突。比如你要復(fù)現(xiàn)一個舊項(xiàng)目它要求 Python 3.8 和 PyTorch 1.13另一個新項(xiàng)目要求 Python 3.10 和 PyTorch 2.x。如果用系統(tǒng)全局 Python 直接裝很容易出現(xiàn)依賴庫互相覆蓋最后哪個項(xiàng)目都跑不起來。用 conda 虛擬環(huán)境每個項(xiàng)目一套獨(dú)立環(huán)境互不干擾這是最推薦的實(shí)踐。從適用場景看適合以下幾類人。第一類是剛接觸 PyTorch 的學(xué)生需要在本地跑通 MNIST、CIFAR 等入門模型第二類是在做論文復(fù)現(xiàn)的研究人員需要快速切換不同版本的 PyTorch 和 CUDA第三類是在公司做內(nèi)部實(shí)驗(yàn)的算法工程師需要一套統(tǒng)一、可復(fù)制的環(huán)境方案并配合 requirements.txt 管理依賴。同時(shí)也要明確一些不適合的場景。Anaconda 適合個人開發(fā)機(jī)和內(nèi)部測試機(jī)不適合直接作為生產(chǎn)環(huán)境部署。生產(chǎn)環(huán)境通常會用 Docker 鏡像鎖定 Python、CUDA、PyTorch 版本避免環(huán)境漂移。另外如果你的任務(wù)目標(biāo)是訓(xùn)練大規(guī)模語言模型或超大視覺模型單機(jī) Anaconda 環(huán)境再干凈也解決不了算力不足的問題那是分布式訓(xùn)練和 GPU 集群的范疇。使用邊界方面要特別提醒合規(guī)問題。PyTorch 本身是開源框架可以自由安裝使用但如果后續(xù)用 PyTorch 加載預(yù)訓(xùn)練模型、處理人臉數(shù)據(jù)、語音數(shù)據(jù)、版權(quán)圖片或受保護(hù)文本必須確認(rèn)數(shù)據(jù)來源合法、模型權(quán)重許可允許你的使用方式并對涉及個人隱私的信息做好脫敏處理。環(huán)境搭建這一步本身沒有風(fēng)險(xiǎn)但環(huán)境最終是為模型服務(wù)所以數(shù)據(jù)的合法授權(quán)問題從一開始就要放在心上。3. 環(huán)境準(zhǔn)備與前置條件正式開始前先對照檢查一下你的機(jī)器是否滿足條件。整個安裝鏈路并不復(fù)雜但缺一個前置依賴后面排查會花很多時(shí)間。系統(tǒng)方面。Windows 最好在 10 以上Windows 7 已經(jīng)不適合跑新版 Anaconda 和 PyTorch。Linux 建議 Ubuntu 18.04 或更高版本內(nèi)核太老可能在裝新版 CUDA 驅(qū)動時(shí)遇到障礙。macOS 要注意區(qū)分 Intel 芯片和 Apple Silicon安裝包類型不同。硬件方面。CPU 版 PyTorch 對硬件幾乎沒有要求普通筆記本就能跑只是訓(xùn)練速度較慢。GPU 版需要 NVIDIA 獨(dú)立顯卡型號建議 GeForce GTX 10 系以上老卡也能用但新版本 PyTorch 可能逐步放棄對 Kepler、Maxwell 架構(gòu)的官方支持。AMD 顯卡用戶需要注意PyTorch 在 Linux 下可以通過 ROCm 獲得 GPU 加速但 Windows 下 ROCm 支持有限更穩(wěn)妥的方案是先使用 CPU 版本跑通代碼或者準(zhǔn)備一臺 NVIDIA 顯卡的機(jī)器?!癆MD 用戶裝不了 PyTorch”是一個常見誤解。準(zhǔn)確說法是PyTorch 官網(wǎng)為 AMD 顯卡提供的是 ROCm 版本且主要支持 LinuxWindows 下官方支持有限。所以 AMD 用戶在 Windows 上最穩(wěn)的路徑是安裝 PyTorch CPU 版先把訓(xùn)練流程跑通再考慮在 Linux 上使用 ROCm 加速。磁盤空間方面。Anaconda 本身安裝后大約占用 3 到 5 GB每個 PyTorch 虛擬環(huán)境又會占用 2 到 5 GB主要取決于你是裝 CPU 版還是帶 CUDA 的 GPU 版。如果后期還要下載多種模型權(quán)重文件建議預(yù)留 30 GB 以上空間免得訓(xùn)練中斷。網(wǎng)絡(luò)方面。下載 Anaconda 安裝包需要訪問官網(wǎng)或鏡像站創(chuàng)建 conda 虛擬環(huán)境和安裝 PyTorch 時(shí)需要訪問 conda 或 pip 源。如果網(wǎng)絡(luò)不穩(wěn)定建議先把默認(rèn)源切換為國內(nèi)鏡像源后續(xù)步驟會快很多。這部分在下一節(jié)展開。另外如果你之前已經(jīng)安裝過 Python并且把它加進(jìn)了系統(tǒng) PATH注意不要和 Anaconda 沖突。原則是讓 Anaconda 管理自己的 Python不要兩個同時(shí)搶環(huán)境變量。最穩(wěn)妥的做法是要么卸載系統(tǒng) Python要么安裝 Anaconda 時(shí)不勾選“Add to PATH”只用 Anaconda Prompt 或編輯器里的解釋器列表來使用它。4. Anaconda 下載安裝與環(huán)境變量配置4.1 下載與安裝打開 Anaconda 官網(wǎng)下載頁面選擇系統(tǒng)對應(yīng)的版本。Windows 用戶要注意Python 3.12 之后的安裝包默認(rèn)不帶“Add to PATH”選項(xiàng)安裝時(shí)需要手動留意如果你不確定保持默認(rèn)不勾選后面用 Anaconda Prompt。安裝過程有幾個關(guān)鍵點(diǎn)。第一個安裝位置建議保持默認(rèn)路徑不要包含中文和空格。第二個安裝類型選擇“Just Me”權(quán)限問題少。第三個是否勾選 PATH建議不勾選避免和已有 Python 沖突。4.2 驗(yàn)證安裝安裝完成后打開 Anaconda PromptWindows輸入conda --version能看到類似conda 24.x.x的輸出說明安裝成功。接著查看 Python 版本python --version注意這里看到的 Python 是 Anaconda 自帶的 base 環(huán)境里的 Python不需要系統(tǒng)單獨(dú)安裝。如果你在 PowerShell 或 CMD 里輸入 conda 提示“不是內(nèi)部或外部命令”說明沒有把 Anaconda 加入 PATH。兩個解決辦法一是以后都用 Anaconda Prompt二是在系統(tǒng)環(huán)境變量中手動添加 Anaconda 的三個路徑分別是安裝目錄、安裝目錄下的Scripts和安裝目錄下的Library\bin。添加后重新打開終端。4.3 配置國內(nèi)鏡像源如果直接在 conda 默認(rèn)源下載包速度可能很慢甚至超時(shí)。建議切換到國內(nèi)鏡像源例如清華 TUNA 源。執(zhí)行以下命令conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main/ conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/ conda config --set show_channel_urls yes配置完成后可以通過conda config --show channels查看當(dāng)前源列表。如果以后想恢復(fù)默認(rèn)源conda config --remove-key channels注意pip 也有自己的源配置。PyTorch 安裝時(shí)如果使用 pip也可以臨時(shí)指定國內(nèi)鏡像源但 PyTorch 的 CUDA 版本依賴比較特殊建議優(yōu)先使用 PyTorch 官方給出的安裝命令實(shí)在下載太慢再考慮鏡像。5. 創(chuàng)建 PyTorch CPU 版與 GPU 版雙環(huán)境5.1 為什么必須拆成兩個環(huán)境PyTorch 的 CPU 版和 GPU 版互相獨(dú)立。很多初學(xué)者只裝了一個 GPU 版換到?jīng)]有獨(dú)顯的機(jī)器上就報(bào)錯或者只裝了 GPU 版但 PyTorch 依賴的 CUDA 版本和本機(jī)驅(qū)動不匹配導(dǎo)致torch.cuda.is_available()一直返回 False。拆成兩個環(huán)境后調(diào)試代碼用 CPU 版正式訓(xùn)練切到 GPU 版邏輯清晰排查更容易。5.2 創(chuàng)建環(huán)境并指定 Python 版本打開 Anaconda Prompt 或終端依次輸入conda create -n pytorch-cpu python3.10 -y conda create -n pytorch-gpu python3.10 -y名字可以自己定比如pytorch-cpu和pytorch-gpu。Python 版本 3.10 是一個兼容性較好的選擇PyTorch 2.x 全系列都支持。如果你有舊項(xiàng)目需要按項(xiàng)目要求換成 3.8 或 3.12命令同樣適用。5.3 安裝 PyTorch CPU 版激活 CPU 環(huán)境conda activate pytorch-cpuPyTorch 官方為 CPU 提供了單獨(dú)的安裝索引。以 PyTorch 2.x 為例通用命令是pip install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cpu如果下載速度慢可以加上國內(nèi)鏡像參數(shù)但要注意部分鏡像同步可能不及時(shí)安裝失敗時(shí)優(yōu)先檢查包版本是否存在pip install torch torchvision torchaudio -i https://pypi.tuna.tsinghua.edu.cn/simple安裝完成后驗(yàn)證 CPU 版是否可用python -c import torch; print(torch.__version__); print(torch.cuda.is_available())輸出中版本號正常、cuda.is_available()為 False就說明 CPU 版安裝成功。CPU 版不用關(guān)心 CUDA 驅(qū)動任何一臺能運(yùn)行 Python 的機(jī)器都能裝。5.4 安裝 PyTorch GPU 版GPU 版安裝前先確認(rèn)兩件事顯卡驅(qū)動是否支持 CUDA以及驅(qū)動對應(yīng)的 CUDA 版本是多少。Windows 下打開終端執(zhí)行nvidia-smi輸出右上角會顯示CUDA Version: 12.x這樣的信息這是驅(qū)動支持的最高 CUDA 版本不等于你已經(jīng)安裝了 CUDA Toolkit。PyTorch 在安裝時(shí)會捆綁自己需要的 CUDA 運(yùn)行庫所以驅(qū)動版本原則上不低于 PyTorch 要求的 CUDA 版本即可。激活 GPU 環(huán)境conda activate pytorch-gpuPyTorch 官網(wǎng)會根據(jù)當(dāng)前系統(tǒng)架構(gòu)生成安裝命令。常見寫法有兩種。使用 CUDA 11.8 的版本pip install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu118使用 CUDA 12.1 或更新版本的寫法類似只需要把索引尾部的cu118換成對應(yīng)的 CUDA 版本標(biāo)識。這里要特別說明不要盲目追求最新 CUDA 版本優(yōu)先參考兩個東西一是本機(jī) NVIDIA 驅(qū)動支持的 CUDA 版本二是你復(fù)現(xiàn)的舊項(xiàng)目對 PyTorch 版本的依賴。如果驅(qū)動較舊選 CUDA 11.8 更穩(wěn)妥。安裝完成后在 GPU 環(huán)境下驗(yàn)證python -c import torch; print(torch.__version__); print(torch.cuda.is_available()); print(torch.cuda.get_device_name(0))理想輸出是版本號顯示2.x.xcu118cuda.is_available()為 True并且打印出你的顯卡名稱。如果cuda.is_available()為 False大概率是驅(qū)動版本、PyTorch 的 CUDA 版本、顯卡架構(gòu)三者之一不匹配排查方法見第 9 節(jié)。5.5 雙環(huán)境的日常管理以后打開終端需要進(jìn)入哪個環(huán)境就用哪個命令conda activate pytorch-cpu conda activate pytorch-gpu退出當(dāng)前環(huán)境conda deactivate查看現(xiàn)有環(huán)境列表conda env list刪除不需要的環(huán)境conda remove -n pytorch-gpu --all環(huán)境之間完全隔離各自安裝的包互不影響。這就是 conda 最實(shí)用的價(jià)值。6. 編輯器配置PyCharm 與 VS Code6.1 編譯器和編輯器的區(qū)別展開配置前先說清楚一個基礎(chǔ)概念。經(jīng)常有新手問“編輯器和編譯器有什么區(qū)別”。簡單說編輯器是你寫代碼的軟件比如 VS Code、PyCharm、Vim、Notepad它負(fù)責(zé)文本編輯和語法高亮編譯器或解釋器是執(zhí)行代碼的程序比如 Python 解釋器負(fù)責(zé)把.py文件翻譯成機(jī)器能執(zhí)行的指令C 編譯器負(fù)責(zé)把.cpp編譯成可執(zhí)行文件。Python 嚴(yán)格來說是解釋執(zhí)行的語言所以用 PyCharm 或 VS Code 寫代碼時(shí)必須手動指定使用哪一個 Python 解釋器。你看到的“配置 Anaconda 環(huán)境”本質(zhì)就是把編輯器里默認(rèn)的解釋器指向 conda 創(chuàng)建的某個虛擬環(huán)境里的 Python。這個區(qū)別弄清楚之后配置過程就不會懵了conda 負(fù)責(zé)創(chuàng)建解釋器環(huán)境編輯器負(fù)責(zé)調(diào)用這個解釋器。6.2 PyCharm 配置 Anaconda 虛擬環(huán)境打開 PyCharm創(chuàng)建新項(xiàng)目后點(diǎn)擊右下角的 Python Interpreter 或者進(jìn)入File - Settings - Project - Python Interpreter。點(diǎn)擊解釋器下拉框旁邊的齒輪選擇Add Interpreter - Add Local Interpreter。在彈出的窗口里選擇Conda Environment - Existing environment然后在列表中選擇你剛才創(chuàng)建的pytorch-gpu環(huán)境。PyCharm 會自動定位到該環(huán)境下的 Python 解釋器確認(rèn)后應(yīng)用。驗(yàn)證方式在項(xiàng)目里新建一個test.py隨意寫一行import torch print(torch.__version__)點(diǎn)擊運(yùn)行如果能正常輸出 torch 版本號說明解釋器配置成功。如果提示ModuleNotFoundError: No module named torch說明解釋器選錯了環(huán)境重新檢查。6.3 VS Code 配置 Anaconda 虛擬環(huán)境VS Code 的配置更輕量。先安裝官方 Python 擴(kuò)展。然后按Ctrl Shift P打開命令面板輸入Python: Select Interpreter選擇你創(chuàng)建的pytorch-gpu環(huán)境。如果列表里沒有點(diǎn)擊 “Enter interpreter path”手動定位到 Anaconda 安裝目錄下的envs\pytorch-gpu\python.exe。配置完成后VS Code 底部狀態(tài)欄會顯示當(dāng)前解釋器名稱。打開終端VS Code 會自動激活這個 conda 環(huán)境終端前綴會出現(xiàn)(pytorch-gpu)。6.4 Markdown 編輯器與文檔協(xié)作除了代碼編輯器深度學(xué)習(xí)項(xiàng)目還需要寫實(shí)驗(yàn)記錄和項(xiàng)目文檔。PyCharm 和 VS Code 都內(nèi)置了 Markdown 預(yù)覽插件可以直接把實(shí)驗(yàn)筆記、模型說明寫成.md文件。對于記錄超參數(shù)、數(shù)據(jù)預(yù)處理步驟、模型結(jié)構(gòu)這類內(nèi)容Markdown 比 Word 更清晰也便于提交到 GitHub 倉庫。如果你經(jīng)常寫博客或維護(hù)項(xiàng)目 README一個順手的 Markdown 編輯器同樣值得裝主流選擇有 Typora、Obsidian 或 VS Code 內(nèi)置預(yù)覽。7. 第一段 PyTorch 訓(xùn)練代碼驗(yàn)證環(huán)境配好、編輯器選好解釋器之后跑一段完整的小代碼確認(rèn) CPU 版和 GPU 版都能正常工作。7.1 CPU 版測試腳本在pytorch-cpu環(huán)境下運(yùn)行import torch # 創(chuàng)建兩個張量并計(jì)算 x torch.randn(3, 3) y torch.randn(3, 3) z torch.matmul(x, y) print(torch version:, torch.__version__) print(CUDA available:, torch.cuda.is_available()) print(z shape:, z.shape)預(yù)期輸出中CUDA available為 False張量計(jì)算正常。這驗(yàn)證了 CPU 推理鏈路。7.2 GPU 版測試腳本在pytorch-gpu環(huán)境下運(yùn)行import torch # 檢查 GPU 是否可用 if torch.cuda.is_available(): device torch.device(cuda) print(Using GPU:, torch.cuda.get_device_name(0)) else: device torch.device(cpu) print(CUDA not available, using CPU) # 將張量放到 GPU 上計(jì)算 x torch.randn(3, 3).to(device) y torch.randn(3, 3).to(device) z torch.matmul(x, y) print(Result shape:, z.shape) print(Result device:, z.device)預(yù)期輸出中Using GPU顯示你的顯卡名稱Result device為cuda:0說明數(shù)據(jù)已經(jīng)成功放到顯卡上參與計(jì)算。如果第一次安裝這一步通過基本可以確定環(huán)境沒有大問題。7.3 一個可運(yùn)行的迷你訓(xùn)練流程為了進(jìn)一步確認(rèn)訓(xùn)練鏈路可以跑一個 20 輪的線性回歸小例子。這個代碼本身沒有實(shí)際應(yīng)用價(jià)值主要用來驗(yàn)證 GPU 上的張量計(jì)算、損失函數(shù)和反向傳播是否正常import torch import torch.nn as nn device torch.device(cuda if torch.cuda.is_available() else cpu) model nn.Linear(8, 1).to(device) loss_fn nn.MSELoss() optimizer torch.optim.SGD(model.parameters(), lr0.01) x torch.randn(64, 8).to(device) y torch.randn(64, 1).to(device) for epoch in range(20): pred model(x) loss loss_fn(pred, y) optimizer.zero_grad() loss.backward() optimizer.step() if (epoch 1) % 5 0: print(fepoch {epoch 1}, loss: {loss.item():.4f})如果能在 GPU 環(huán)境下正常迭代并輸出 loss說明 PyTorch 的雙向傳播鏈路沒有問題。這個測試很小運(yùn)行過程會在幾秒內(nèi)結(jié)束適合作為環(huán)境配置完成的驗(yàn)收腳本。8. GPU 顯存占用與性能觀察方法8.1 如何查看顯存占用訓(xùn)練代碼運(yùn)行時(shí)最直觀的觀察方法是nvidia-smi。Windows 用戶在終端輸入nvidia-smi輸出表格中的第一行會列出所有 NVIDIA GPU下方的“Memory-Usage”列顯示顯存占用。如果訓(xùn)練代碼在運(yùn)行nvidia-smi里會看到一個 Python 進(jìn)程占用幾百 MB 到幾 GB 不等的顯存。如果你不想一直盯著終端可以用nvidia-smi -l 1這條命令每秒刷新一次方便觀察訓(xùn)練過程中顯存變化。Linux 下也可以用watch -n 1 nvidia-smi。Windows 下任務(wù)管理器切換到“性能”選項(xiàng)卡也可以看到 GPU 的“專用 GPU 內(nèi)存”占用。但任務(wù)管理器不會顯示進(jìn)程級別的顯存占用排查誰占滿了顯存還是nvidia-smi更方便。8.2 影響顯存占用的關(guān)鍵參數(shù)訓(xùn)練一個模型顯存占用并非固定值而是由幾個參數(shù)共同決定。第一是模型本身的大小模型參數(shù)量越大權(quán)重和梯度占用的顯存越多。第二是批量大小 batch size批量從 16 增加到 32激活值緩存幾乎翻倍。第三是輸入分辨率或序列長度輸入越大中間特征圖越大顯存占用越高。第四是是否開啟混合精度開啟 AMP 后部分計(jì)算使用半精度顯存占用和顯存帶寬壓力都會明顯降低。如果訓(xùn)練時(shí)遇到CUDA out of memory按照以下順序調(diào)整先把 batch size 降低到 1再嘗試降低輸入分辨率然后開啟torch.cuda.amp.autocast()混合精度最后再考慮換一個顯存更大的顯卡。不要一上來就換環(huán)境或重裝 PyTorch顯存不足不是安裝問題。8.3 CPU 推理和 GPU 推理的差異CPU 環(huán)境下PyTorch 能跑但速度比 GPU 慢很多。對于卷積神經(jīng)網(wǎng)絡(luò)和 Transformer 這類并行度高的模型GPU 優(yōu)勢尤其明顯。CPU 版環(huán)境的價(jià)值不是追求速度而是保證你能在本地“先跑通”再在有 GPU 的機(jī)器上“跑得快”。同一套代碼在 CPU 環(huán)境和 GPU 環(huán)境之間切換只需要修改設(shè)備選擇邏輯一般就是torch.device(cuda if torch.cuda.is_available() else cpu)這一行。9. 常見問題與排查方法問題現(xiàn)象可能原因排查方式解決方案conda 命令找不到Anaconda 未加入 PATH 或未使用 Anaconda Prompt終端輸入conda --version使用 Anaconda Prompt 啟動或手動配置 PATH創(chuàng)建虛擬環(huán)境時(shí)提示UnavailableInvalidChannelconda 的 channel 源配置錯誤或源服務(wù)器同步異常執(zhí)行conda config --show channels刪除錯誤源并重新添加鏡像源必要時(shí)刪除.condarc中無效 channel 后重試pip 安裝 PyTorch 報(bào)版本找不到指定了不存在的 CUDA 索引或 Python 版本過舊查看安裝命令中的索引后綴和 Python 版本去 PyTorch 官網(wǎng)核對當(dāng)前支持的 Python 版本和 CUDA 版本torch.cuda.is_available()返回 False驅(qū)動過舊、PyTorch CUDA 版本與驅(qū)動不匹配、顯卡不支持執(zhí)行nvidia-smi查看驅(qū)動 CUDA 版本更新 NVIDIA 驅(qū)動選擇與驅(qū)動兼容的 PyTorch CUDA 版本導(dǎo)入 torch 后 Python 崩潰或異常退出Python 版本與 PyTorch 不兼容或 CPU 指令集不支持檢查 Python 版本和 torch 版本重裝適合當(dāng)前 Python 版本的 PyTorchPyCharm 找不到 conda 環(huán)境Anaconda 安裝路徑特殊PyCharm 未自動識別在解釋器設(shè)置中手動添加路徑選擇Add Local Interpreter手動瀏覽到envs目錄下的python.exeVS Code 終端沒有自動激活 conda 環(huán)境Python 擴(kuò)展未識別 conda按Ctrl Shift P執(zhí)行Python: Select Interpreter手動指定 Anaconda 環(huán)境中的 Python 解釋器安裝后 torchvision 與 torch 版本不匹配手動安裝時(shí)版本組合不一致用pip list查看版本同時(shí)安裝torchtorchvisiontorchaudio不要分開裝不同來源訓(xùn)練時(shí)爆顯存batch size 過大或輸入分辨率過高觀察nvidia-smi顯存占用降低 batch size降低分辨率開啟混合精度conda 環(huán)境里執(zhí)行 pip 卻裝到了系統(tǒng) Python終端未激活 conda 環(huán)境終端前綴是否顯示(pytorch-gpu)執(zhí)行conda activate pytorch-gpu后再安裝10. 最佳實(shí)踐與使用建議環(huán)境配好只是第一步長期使用中養(yǎng)成好習(xí)慣可以省下大量排查時(shí)間。第一環(huán)境命名要有規(guī)律。推薦格式是“框架名 用途”比如pytorch-cpu、pytorch-gpu、tf-gpu。不要起test1、newenv這種名字三個月后再看你自己都分不清。第二給每個項(xiàng)目單獨(dú)創(chuàng)建環(huán)境。一個環(huán)境對應(yīng)一個項(xiàng)目或一篇論文復(fù)現(xiàn)不要把十幾個項(xiàng)目的依賴混在一個環(huán)境里。項(xiàng)目結(jié)束時(shí)執(zhí)行conda env export導(dǎo)出環(huán)境方便以后復(fù)現(xiàn)。第三項(xiàng)目依賴用requirements.txt管理。在項(xiàng)目根目錄執(zhí)行pip freeze requirements.txt換機(jī)器后安裝pip install -r requirements.txt注意pip freeze會把環(huán)境里所有包都導(dǎo)出來其中可能包含和項(xiàng)目無關(guān)的包。更精細(xì)的做法是手動維護(hù)requirements.txt只寫直接依賴的包并標(biāo)注版本。第四不要輕易改動 base 環(huán)境。Anaconda 自帶的基礎(chǔ)環(huán)境用于 conda 自身運(yùn)行如果刪了或改亂了可能導(dǎo)致conda本身無法使用。日常操作都放在獨(dú)立虛擬環(huán)境里。第五模型文件和數(shù)據(jù)集的目錄管理要提前規(guī)劃。建議按data/、models/、results/、logs/分目錄存放。不要把所有東西都堆在工作目錄下否則模型調(diào)試和結(jié)果對比都會很痛苦。第六使用端口的實(shí)驗(yàn)項(xiàng)目要固定端口規(guī)則。PyTorch 本身不依賴端口但常用配套工具有TensorBoard 默認(rèn) 6006Jupyter 默認(rèn) 8888。如果你同時(shí)跑多個服務(wù)注意避免端口沖突。第七數(shù)據(jù)合規(guī)和模型授權(quán)需要時(shí)刻注意。環(huán)境本身沒有合規(guī)問題但當(dāng)你下載預(yù)訓(xùn)練權(quán)重、使用公開數(shù)據(jù)集、處理別人提供的人臉或語音素材時(shí)必須先確認(rèn)獲得合法授權(quán)。論文復(fù)現(xiàn)時(shí)要查看開源許可證企業(yè)項(xiàng)目中尤其要避免直接使用未經(jīng)授權(quán)的數(shù)據(jù)和權(quán)重。11. 總結(jié)與下一步這套流程真正值得記住的核心不是某一條具體命令而是“隔離 明確版本”這個環(huán)境管理思想。Anaconda 提供隔離能力PyTorch 按 CPU/GPU 雙版本拆開避免互相干擾編輯器負(fù)責(zé)選擇正確的解釋器。只要你把這三層的關(guān)系理清以后不管換什么項(xiàng)目、什么框架都能快速搭出干凈可復(fù)用的環(huán)境。最容易踩的坑有兩個一是 conda 和系統(tǒng) Python 的 PATH 沖突解決辦法是優(yōu)先使用 Anaconda Prompt或者把解釋器路徑交給編輯器管理二是 GPU 環(huán)境裝完torch.cuda.is_available()仍然返回 False這種情況下不要先懷疑安裝命令先執(zhí)行nvidia-smi看驅(qū)動版本驅(qū)動不兼容時(shí)重裝 PyTorch 多少次都沒有用。建議你完成安裝后優(yōu)先驗(yàn)證三件事CPU 版環(huán)境能否正常做張量計(jì)算GPU 版環(huán)境能否讓torch.cuda.is_available()返回 TruePyCharm 或 VS Code 能否選對解釋器并跑通第一段訓(xùn)練代碼。這三件事全部通過你的本地深度學(xué)習(xí)開發(fā)環(huán)境就算真正落地了。下一步可以直接進(jìn)入 PyTorch 實(shí)戰(zhàn)從 MNIST 手寫數(shù)字分類開始跑通第一個卷積神經(jīng)網(wǎng)絡(luò)然后可以嘗試在 GPU 上訓(xùn)練一個更小的 ResNet 或 Vision Transformer理解數(shù)據(jù)加載、模型定義、訓(xùn)練循環(huán)和評估流程是怎么協(xié)同工作的。配環(huán)境只是起點(diǎn)后面真正有價(jià)值的是你跑起來的每一行訓(xùn)練代碼和每一次實(shí)驗(yàn)記錄。