【Pytorch-入門】windows下的環境搭建(經驗證成功~)

前言python

實驗須要,以前使的tensorflow【由於本身手邊的服務器都是windows環境TT...】,但身邊的師兄們用的都是pytorch,本身查了查如今作科研基本上都是用的pytorch,並且如今pytorch的windows版本也已經很成熟了,fastai深度學習庫也受到了普遍的好評,因此...果斷轉!linux

環境搭建-windows-gpu版:

入門嘛固然是先搭建環境啦,網上資料蠻多的,這裏我就記錄一下個人搭建過程吧:web

1、版本選擇:windows

網上看看,如今pytorch最新版的都是1.0了哇,然而不少開源的項目用的還都是0.4版的,如今剛入門,仍是基礎爲主,就選擇最新版pytorch1.0吧!服務器

2、系統需求:app

一、Python:3.6及以上學習

二、操做系統環境:windows測試

系統 GPU CPU
linux binary binary
mac source binary
windows source source

備註: binary = 直接能夠安裝, source = 必須從源碼編譯spa

3、經過Anaconda安裝:操作系統

以前沒安裝過Anaconda的須要安裝好以後再進行以後的操做![教程網上不少(有的也很坑,慎重選擇!),這裏再也不贅述]

這裏由於俺以前摸爬滾打,入了不少坑,因此有些操做就只簡單解釋一下,若是不懂能夠本身查查或者留言~

一、使用Anaconda建立虛擬環境【防止出現你以前的許多包or環境與Python,PyTorch以及其餘包的版本出現不兼容等玄學問題!】:

  • 查看當前存在哪些虛擬環境:conda env list 或 conda info -e

  •  建立python虛擬環境: 
使用 conda create -n your_env_name python=X.X(2.七、3.6等) anaconda 命令建立python版本爲X.X、名字爲your_env_name的虛擬環境。your_env_name文件能夠在Anaconda安裝目錄envs文件下找到。
# 指定python版本爲3.6,注意至少須要指定python版本或者要安裝的包# 後一種狀況下,不指定python版本,自動安裝最新python版本
conda create -n env_name python=3.6
# 同時安裝必要的包
conda create -n env_name numpy matplotlib python=3.6

  •  激活建立的虛擬環境:Windows: activate your_env_name(虛擬環境名稱),這是使用python --version能夠檢查當前python版本是否爲想要的。

 二、在當前虛擬環境下經過conda安裝pytorch:

若是和我同樣準備安裝的是gpu版的,注意必定要檢查你的cuda版本,確保和你的系統保持一致。通常推薦的是cuda9.0版的【相對最新版要穩定的多】,若是沒安裝cuda,能夠自行安裝後再進行以後的步驟,推薦按照官網教程來:win10+cuda9.0+cuDNN 7.0+TensorFlow-gpu install steps【必定要注意版本匹配的問題!】:

  • 進入以前配置好的虛擬環境中:activate -虛擬環境名稱(若是你忘記了以前的虛擬環境名稱,輸入:conda env list)
  • 安裝每日編譯 nightly 的 PyTorch,注意 cuda 的版本要和你本身的系統保持一致,好比在 CUDA 9.2 上安裝:
conda install -c pytorch pytorch-nightly cuda92
  • 若是你的系統沒有安裝 cuda,那麼能夠經過下面的命令安裝 cpu 版本的 PyTorch:
conda install -c pytorch pytorch-nightly-cpu

 安裝 fastai:

conda install -c fastai fastai
  • 若是安裝過程有什麼問題,請確保你的 conda 版本已經更新到最新: 
conda update conda

三、安裝成功後的測試:

由於是gpu版的,並且在windows上安裝,不免會有許多玄學bug出現,這時是否能用,就要測試一下啦:

一樣在以前的cmd虛擬環境中輸入:

import torch    # 如正常則靜默

a = torch.Tensor([1.]) # 如正常則靜默 a.cuda() # 如正常則返回"tensor([ 1.], device='cuda:0')" from torch.backends import cudnn # 如正常則靜默 cudnn.is_acceptable(a.cuda()) # 如正常則返回 "True"

相關文章
相關標籤/搜索