1. 程式人生 > >【深度學習】win10+Theano+GPU加速配置

【深度學習】win10+Theano+GPU加速配置

最近在導師介紹下,自學臺灣大學Hungyi Lee於2015年錄製的Machine Learning and having it deep and structured課程,裡面完成作業要求使用theano, 因此必須配置一發python下的theano。
(GPU加速能有效加快程式碼的執行速度,可以說是磨刀不誤砍柴工。)

本機環境

【筆記本】:Thinkpad T470 Signature Edition
【CPU】:Intel i5-7200U
【記憶體】:8G
【顯示卡】:Intel HD 620 + NVIDIA GeForce 940MX
【作業系統】:windows10 Build 15063
【已有環境】:Python 2.7+Anaconda2-64bit(用於conda install以及依賴包numpy等);MS Visual Studio 2015(已含C++元件)

參考部落格

翻閱了很多部落格,精選了這三篇比較靠譜的,鑑於每臺機器的配置和環境都有差異,可以將這三篇對比著看~

遇到的問題

安裝時報錯

走了很多彎路,總結了必須要檢查的幾點,大家可以在上面部落格裡的具體步驟裡找對應的解決方案。

  • 檢查點1:所有依賴包的安裝、”.theanorc.txt”的設定
  • 檢查點2:CUDA Toolkit是否支援本機的NIVIDA顯示卡,以及本機顯示卡驅動的更新
  • 檢查點3:VS 2015重新編譯CUDA samples,保證沒有錯誤

匯入theano包時報錯

  • 上面的部落格裡都有提到一些常見的錯誤,也給出瞭解決方案,主要還是安裝沒有徹底完成,尤其是在配置CUDA時候要確保每一步順利。
  • nvcc fatal : Cannot find compiler 'cl.exe' in PATH
    • 原因是沒有完全配置好.theanorc.txt檔案中VC的bin目錄,解決方法是加入下述文字
    • [nvcc]
      fastmath=True
      flags =-LD:\ProgramData\Anaconda2\libs
      compiler_bindir=D:\Program Files (x86)\Visual Studio\VC\bin

執行時報錯

  • 用GPU進行浮點數運算時,提示資料型別無法轉換到float32,原因可能是在.theanorc.txt中指明瞭floatX = float32

    ,導致了64位浮點運算捨棄的問題

  • 版本相容問題

    • “WARNING (theano.sandbox.cuda): The cuda backend is deprecated and will be removed in the next release (v0.10). Please switch to the gpuarray backend. ”