windows下安裝caffe (cuda10.0,anaconda3,python3.6→python2.7,vs2015→vs2013)


都9102年了為什么還安裝caffe...

caffe需要python3.5,我還要用anaconda生成新的環境

conda create -n py35conda python=3.5
activate py35conda

但是經常出錯,才知道最近國內清華跟科大還有騰訊源都停止支持了,只剩下交大了https://www.cnblogs.com/dereen/p/anaconda_tencent_mirrors.html

之后搞了很多錯誤示范,溫馨提示不要反復卸載安裝vs,真的站空間!

vs注意使用管理員權限打開!

最后還是用https://blog.csdn.net/weixin_37621229/article/details/80547934的方法做好的,一定要下載老版的windows專屬caffe,不要去git caffe源代碼,很蠢- -,需要注意的是

解決方案:

在路徑NugetPackages/OpenCV.2.4.10/build/native/中找到OpenCV.props,打開作如下修改后保存!

這個地方刪除的是private前面的斜杠

但還是出錯,,這次沒有多斜杠了,然后嘗試https://www.cnblogs.com/yamin/p/8596748.html才解決,注意升級后新的opencv也要刪除那個斜杠

 

編譯了半天出了新問題

嚴重性    代碼    說明    項目    文件    行    禁止顯示狀態
錯誤        too few arguments in function call    libcaffe    D:\code\windows-caffe-master\caffe-master\include\caffe\util\cudnn.hpp    114    

The problem is due to CuDNN 6.0 adding the extra “type” parameter.

解決方法https://blog.csdn.net/mao_hui_fei/article/details/80326464

 

然后又是新問題

嚴重性    代碼    說明    項目    文件    行    禁止顯示狀態
錯誤    MSB3073    命令“"D:\code\windows-caffe-master\caffe-master\windows\\scripts\BinplaceCudaDependencies.cmd" "C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v10.0\bin" "C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v10.0" false true "D:\code\windows-caffe-master\caffe-master\windows\..\Build\x64\Release\"
:VCEnd”已退出,代碼為 1。    libcaffe    C:\Program Files (x86)\MSBuild\Microsoft.Cpp\v4.0\V120\Microsoft.CppCommon.targets    132

解決方法https://blog.csdn.net/hyb1234hi/article/details/55188871

 

然后還有沒解決的報錯

嚴重性    代碼    說明    項目    文件    行    禁止顯示狀態
錯誤    C1083    無法打開包括文件: “corecrt.h”: No such file or directory    upgrade_solver_proto_text    D:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\include\crtdefs.h    10    

網上說vs2015要安裝Windows 10 sdk才能用,不然就會少這個文件,確實在8.1sdk里面沒有。。。

如果直接安裝的話需要c盤很大地方,,我空間不夠,

去微軟官網下載https://developer.microsoft.com/zh-cn/windows/downloads/windows-10-sdk

並且不要選者直接安裝,先下載,這樣可以選擇分離部件,我只是需要那個correct.h!

安裝后應該在這個位置下找到文件C:\Program Files (x86)\Windows Kits\10\Include\10.0.18362.0\ucrt

復制到8.1和8.0的sdk的lib中沒用,還是提示找不到,索性將ucrt文件夾下的文件都復制到vs的include目錄中D:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\include

重啟vs,繼續生成解決方案

 

新問題

嚴重性    代碼    說明    項目    文件    行    禁止顯示狀態
錯誤    MSB4062    未能從程序集 D:\code\windows-caffe-master\NugetPackages\OpenCV.2.4.11\build\native\private\coapp.NuGetNativeMSBuildTasks.dll 加載任務“NuGetPackageOverlay”。未能加載文件或程序集“file:///D:\code\windows-caffe-master\NugetPackages\OpenCV.2.4.11\build\native\private\coapp.NuGetNativeMSBuildTasks.dll”或它的某一個依賴項。系統找不到指定的文件。 請確認 <UsingTask> 聲明正確,該程序集及其所有依賴項都可用,並且該任務包含實現 Microsoft.Build.Framework.ITask 的公共類。    libcaffe    D:\code\windows-caffe-master\NugetPackages\OpenCV.2.4.11\build\native\OpenCV.targets    1119    

解決方法https://blog.csdn.net/tfygg/article/details/60579736?utm_source=blogxgwz7

改完后刪除所使用的的opencv(更新后),注意是刪除!不是改名字!不然后果很嚴重,vcxproj文件會留下歷史文件名報錯。,

記得每次卸載方案之后都需要再定義啟動項

 

到這里,已經========== 生成: 成功 3 個,失敗 13 個,最新 0 個,跳過 0 個 ==========

出現的問題有一些警告被視為錯誤 - 沒有生成“object”文件,需要把對應的項目里面設置一下https://blog.csdn.net/wangduyang/article/details/78664386

還有一個錯誤

嚴重性    代碼    說明    項目    文件    行    禁止顯示狀態
錯誤    LNK1104    無法打開文件“libboost_date_time-vc140-mt-1_59.lib”    caffe    D:\code\windows-caffe-master\caffe-master\windows\caffe\LINK    1    

解決方法https://www.cnblogs.com/qq552048250/p/10588673.html的錯誤二

本來我還想着去下載的,使用nuget控制台輸入指令

Install-Package boost -ProjectName Caffe -Version 1.59

安裝指定版本,結果提示已存在

一看果然在這里D:\code\windows-caffe-master\NugetPackages\boost_date_time-vc120.1.59.0.0\lib\native\address-model-64\lib

按照https://www.cnblogs.com/denggelin/p/5769480.html關聯就好

包含目錄

D:\code\windows-caffe-master\NugetPackages\boost_date_time-vc120.1.59.0.0\

庫目錄

D:\code\windows-caffe-master\NugetPackages\boost_date_time-vc120.1.59.0.0\lib\native\address-model-64\lib

wc不對!!!這是vc120,我要找vc140版本,,,,在nuget控制行運行下面的吧

Install-Package boost-vc140 -ProjectName Caffe -Version 1.59

安裝還挺久的

報錯了!!

正在安裝 boost_math_tr1-vc140 1.59.0。
Install-Package : Error downloading 'boost_math_tr1-vc140.1.59.0 : boost [1.59.0, 1.59.0]' from 'https://api.nuget.org/v3-flatcontainer/boost_math_tr1-vc140/1.59.
0/boost_math_tr1-vc140.1.59.0.nupkg'.
磁盤空間不足。
所在位置 行:1 字符: 1
+ Install-Package boost-vc140 -ProjectName Caffe -Version 1.59
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : NotSpecified: (:) [Install-Package], Exception
    + FullyQualifiedErrorId : NuGetCmdletUnhandledException,NuGet.PackageManagement.PowerShellCmdlets.InstallPackageCommand
 
安裝失敗。正在回滾...
程序包“boost_math_tr1-vc140.1.59.0 : boost [1.59.0, 1.59.0]”不存在於項目“caffe”中
已從“packages.config”中刪除程序包“boost_math_c99l-vc140.1.59.0 : boost [1.59.0, 1.59.0]”

woc!!!!我清完的空間就被你一下子占完了,回退還不刪除原來的東西,我都不知道你下載在哪,不裝c盤不行么

查了下nuget默認的全局包下載地址一般為:C:\Users\username.nuget\packages,刪除后發現空了3g。。。3g都不夠你裝么,,

重裝還是會失敗,發現其實命令行消息告訴了我們文件獲取地址

https://api.nuget.org/v3-flatcontainer/boost_date_time-vc140/1.59.0/boost_date_time-vc140.1.59.0.nupkg

下載后按照https://blog.csdn.net/linjf520/article/details/79585081添加本地nuget來源,離線安裝

編譯還會報錯

嚴重性    代碼    說明    項目    文件    行    禁止顯示狀態
錯誤        This project references NuGet package(s) that are missing on this computer. Enable NuGet Package Restore to download them.  For more information, see http://go.microsoft.com/fwlink/?LinkID=322105. The missing file is ..\..\..\NugetPackages\build\native\boost_date_time-vc140.targets.    caffe    D:\code\windows-caffe-master\caffe-master\windows\caffe\caffe.vcxproj    123    

打開vcxproj文件發現原來是我們解決方案邊上文件夾沒有這個包,默認裝到C:\Users\username.nuget\packages去了,所以..\..\..\NugetPackages\build\native\boost_date_time-vc140.targets找不到,復制過去就好了

需要注意的是復制來源是C:\Users\用戶\.nuget\packages\boost_date_time-vc140\1.59.0目錄下的文件,復制到項目邊上的NugetPackages文件夾

然后就報錯

嚴重性    代碼    說明    項目    文件    行    禁止顯示狀態
錯誤    LNK1104    無法打開文件“libboost_thread-vc140-mt-gd-1_59.lib”    convert_cifar_data    D:\code\windows-caffe-master\caffe-master\windows\convert_cifar_data\LINK    1    

好吧看來那3g都要安裝。。。那就參照https://blog.csdn.net/lindexi_gd/article/details/79399744的方法一試試,需要注意的是使用cmd而不是powershell不然報錯

ps:mklink /d 真是個好東西,用它避免了matlab占用太多c盤空間

結果還是各種錯誤!!!我受夠了,用vs2013試試!

重新開始建議參考https://www.cnblogs.com/k7k8k91/p/7629919.html

中間遇到的問題基本在之前都討論過,

14>  test_all.vcxproj -> D:\code\windows-caffe-master\caffe-master\windows\..\Build\x64\Release\test_all.exe
========== 生成:  成功 16 個,失敗 0 個,最新 0 個,跳過 0 個 ==========

搞定!!!!

然后按照https://blog.csdn.net/weixin_37621229/article/details/80547934編譯pycaffe,遇到錯誤

錯誤    424    error C1083: 無法打開包括文件: “numpy/arrayobject.h”: No such file or directory    D:\code\windows-caffe-master\caffe-master\python\caffe\_caffe.cpp    10    1    pycaffe

虛擬環境沒有numpy,activate之后輸入一下代碼安裝

pip install numpy

再次編譯,ok!

 

 

....還沒完全ok,import caffe還會報錯

>>> import caffe
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "C:\ProgramData\Anaconda3\envs\py27conda\lib\site-packages\caffe\__init__.py", line 1, in <module>
    from .pycaffe import Net, SGDSolver, NesterovSolver, AdaGradSolver, RMSPropSolver, AdaDeltaSolver, AdamSolver
  File "C:\ProgramData\Anaconda3\envs\py27conda\lib\site-packages\caffe\pycaffe.py", line 15, in <module>
    import caffe.io
  File "C:\ProgramData\Anaconda3\envs\py27conda\lib\site-packages\caffe\io.py", line 2, in <module>
    import skimage.io
ImportError: No module named skimage.io

pip install skimage會失敗,使用conda安裝

conda install scikit-image

要安裝一大堆東西。。。。到此結束!

才怪。。。還要裝opencv,參考https://anaconda.org/menpo/opencv知道命令是

conda install -c menpo opencv

 還會遇到很多問題,一個是

ModuleNotFoundError: No module named 'numpy.core._multiarray_umath'

需要升級numpy到1.16.3,另一個是下面的錯誤,

  File "C:\ProgramData\Anaconda3\envs\py27conda\lib\site-packages\skimage\util\arraycrop.py", line 8, in <module>
    from numpy.lib.arraypad import _validate_lengths
ImportError: cannot import name _validate_lengths

解決方法是https://www.cnblogs.com/lixiansheng/p/10293323.html的問題2


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM