目錄html
GPU爲RTX2080,系統爲更新到最新版本的Win10。python
爲conda設置國內鏡像源,默認國外的鏡像源會比較慢。git
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/ conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/conda-forge/ conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/msys2/ conda config --set show_channel_urls yes
這時目錄"C:\Users\用戶名"下的.condarc文件內容變爲github
channels: - https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/ - https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/conda-forge/ - https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/msys2/ show_channel_urls: true
若是有default能夠刪除。apache
# 建立conda環境 conda create -n py36DL python=3.6 # 更新pip pip install --upgrade pip # 若報錯 easy_install pip # 激活環境 activate py36DL # 安裝ipython,後面用於測試庫是否安裝成功 conda install ipython
注意:下面的全部安裝都是在激活了的py36DL環境中進行的。windows
筆者經過官網、經過conda、經過豆瓣鏡像源安裝tensorflow在import時都會失敗,報「ImportError: DLL load failed: 找不到指定的模塊」的錯誤,最終成功的安裝方式以下:bash
到fo40225/tensorflow-windows-wheel找到對應的版本下載whl,筆者下載的是tensorflow_gpu-1.12.0-cp36-cp36m-win_amd64.whl的avx2版本(有兩個壓縮包,解壓出whl文件),若是安裝不成功的話能夠試試sse2版本,這裏神奇的地方是該whl文件應該是在cuda100cudnn73avx2下編譯的,可是個人環境是cuda100和cudnn74,居然也是能夠安裝成功的,筆者久經磨難,喜極而泣。app
下載下來後經過pip安裝函數
# 切換到whl目錄 pip install tensorflow_gpu-1.12.0-cp36-cp36m-win_amd64.whl # 進入ipython驗證 import tensorflow as tf tf.VERSION # '1.12.0'
mxnet安裝比較簡單,這裏直接經過豆瓣鏡像源用pip安裝。學習
pip install -i https://pypi.doubanio.com/simple/ mxnet-cu100 # 進入ipython驗證 import mxnet mxnet.__version__ # '1.3.1'
mxnet的官網顯示支持到cu92,實際已經有了cu100版本。
pytorch的安裝也很簡單,在官網,選擇pip、Python3.六、CUDA10.0,顯示
pip3 install https://download.pytorch.org/whl/cu100/torch-1.0.0-cp36-cp36m-win_amd64.whl pip3 install torchvision
這裏先把連接https://download.pytorch.org/whl/cu100/torch-1.0.0-cp36-cp36m-win_amd64.whl拷貝到IDM下載whl文件,而後離線安裝
# 切換到whl路徑 pip install torch-1.0.0-cp36-cp36m-win_amd64.whl pip install torchvision #進入ipython驗證 import torch torch.__version # '1.0.0'
筆者使用的是happynear/caffe-windows版本的caffe,下載解壓,同時下載第三方庫拷貝到項目windows/thirdparty/文件夾,Copy .\windows\CommonSettings.props.example to .\windows\CommonSettings.props,打開Caffe.sln,根據github上的README修改配置文件.\windows\CommonSettings.props,編譯成功後再參考README配置python和matlab,注意使用時須要將thirdparty/bin目錄添加到path環境變量,不然運行時會報錯。
修改環境變量後以管理員運行CMD,運行
echo %path%
當即生效,不用重啓系統。
主要修改項以下:
根據wiki,RTX2080的Compute capability (version)爲7.5,目前只有CUDA10.0支持7.5,所以CudaArchitecture中若是加入compute_75,sm_75;的話須要CUDA爲10.0,不然會報錯。若是裝的是CUDA9.2,在不加compute_75,sm_75;的狀況下也是能夠編譯成功的。
將警告視爲錯誤
在報錯的工程上右鍵,選擇 屬性→C/C++→將警告視爲錯誤,改成否,生成項目。要是某個項目文件報這個錯的話,也能夠在相應文件上右鍵,進行一樣操做。
The Windows SDK version 10.0.10586.0 was not found
在報錯的工程上右鍵,選擇 重定SDK版本目標,選擇 目標平臺版本(默認就一項 8.1),點擊肯定,生成項目。
Check failed: error == cudaSuccess (74 vs. 0) misaligned address
根據cuDNN bug in Caffe with "group" in conv layer (misaligned address) #5729,在 cudnn_conv_layer.cpp 文件void CuDNNConvolutionLayer<Dtype>::Reshape
函數size_t total_max_workspace = ...
代碼前加入對齊代碼以下
this is a bug of Caffe, I solved it by modifying cudnn_conv_layer.cpp and aligning the address to be multiples of 32.
You can insert tow lines of code before size_t total_max_workspace = ... as follow:
size_t m=32; max_workspace = (max_workspace + m-1) / m * m; //align address to be multiples of m
BTW, I think there is another bug, these lines should be put in else block:
for (int g = 0; g < (this->group_ * CUDNN_STREAMS_PER_GROUP); g++) { workspace[g] = reinterpret_cast<char *>(workspaceData)+g*max_workspace; }