1. 程式人生 > >基於Windows10 x64+visual Studio2013+Python2.7.12環境下的Caffe配置學習

基於Windows10 x64+visual Studio2013+Python2.7.12環境下的Caffe配置學習

GPU Computer Capability
GTX660, 680, 760, 770 compute_30,sm_30
GTX780, Titan Z, Titan Black, K20, K40 compute_35,sm_35
GTX960, 970, 980, Titan X compute_52,sm_52

根據需要,我的配置如下圖:

(三)專案編譯

用VS2013,在caffe-master\windows目錄下開啟caffe.sln,進去後如下圖(共16個專案):

其中capthaTest是我測試caffe進行驗證碼識別的python專案。編譯時可以直接右鍵【解決方案caffe】進行生成,當然這會報很多錯誤,都是些資原始檔引用問題,通過一個個專案單獨編譯都可以很快解決。因為我這裡只用到其中幾個專案,所以我編譯的順序是:

libcafffe->caffe->pycaffe->convert_imageset,每個專案編譯前都需要設定相應的引用路徑,這裡有兩種路徑,include路徑和libs路徑,詳細怎麼新增見下面。

(1)libcaffe在編譯前先設定資源引用路徑,點選專案右鍵-》屬性-》配置屬性-》c/c++,【附加包含目錄中】中加入python的include路徑,我這是D:\Python27\include,如下圖:

(2)caffe在編譯前先設定資源引用路徑,點選專案右鍵-》屬性-》配置屬性-》c/c++,【附加包含目錄中】加入python的include路徑,我這是D:\Python27\include,同時,在連結器中的【附加庫目錄】中加入python的libs路徑,我這裡是D:\Python27\libs,如果顯示卡安裝不是預設路徑也相應把C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v8.0\include和libs加入到裡面,如下圖:

 

(3)pycaffe在編譯前先設定資源引用路徑,點選專案右鍵-》屬性-》配置屬性-》c/c++,【附加包含目錄中】加入python的include路徑和numpy的include路徑,我這裡分別是D:\Python27\include和D:\Python27\Lib\site-packages\numpy\core\include,同時,在連結器中的【附加庫目錄】中加入python的libs路徑和numpy的libs路徑,我這裡分別是D:\Python27\libs和D:\Python27\Lib\site-packages\numpy\core\lib,如下圖:

 

如果這個編譯時出現:

error LNK2001: 無法解析的外部符號 __imp_PyString_FromString
error LNK2001: 無法解析的外部符號 __imp_PyCallable_Check

error LNK2001: 無法解析的外部符號 __imp_PyObject_CallObject
error LNK2001: 無法解析的外部符號 __imp_Py_Initialize

error LNK2001: 無法解析的外部符號 __imp_Py_IsInitialized

error LNK2001: 無法解析的外部符號 __imp_PyImport_Import

error LNK2001: 無法解析的外部符號 __imp_PyModule_GetDict

error LNK2001: 無法解析的外部符號 __imp_PyDict_GetItemString

error LNK2001: 無法解析的外部符號 __imp_PyRun_SimpleStringFlags

error LNK2001: 無法解析的外部符號 __imp_Py_Finalize

等無法解析外部符號等問題,說明C++編譯器在呼叫python.exe時出錯了,我遇到這個坑,解決了很久,具體原因我也不清楚,猜測是因為編碼問題導致的,因為我下載的python有問題,而我同事的沒問題,最終我把他所有的python檔案拷貝覆蓋我這裡的,最終才算ok!

如果用C編寫Python擴充套件找不到Python27_d.lib,這是一個python版本問題,網友給的兩種解決方案 方法一:直接安裝debug版本的python27 方法二: 1.將python安裝目錄下libs目錄裡的python27複製一份並命名為python27_d.lib 2.修改include目錄下的pyconfig.h,用/**/將#define Py_DEBUG註釋掉

(4)其他專案我想應該也是這種新增模式,應該問題不大

 (四)編譯完成後檢查

如果編譯成功了,會在caffe-master同路徑下生成NugetPackages資料夾,同時在caffe-master資料夾下生成Build資料夾

(1)NugetPackages裡面內容

一個都不能少,如果少了的話,可能是nuget通訊問題,多編譯幾次就下載完了。

 (2)Build資料夾下的內容,一定有caffe.exe檔案,不然說明沒編譯成功

(3)編譯成功後,將caffe-master\caffe-master\Build\x64\Debug\pycaffe路徑下的caffe資料夾拷貝到python的site-packages下面(也可設定PYTHONPATH指向caffe資料夾),然後用python測試能不能正常import caffe,如果沒報錯說明一切OK。我這裡引用時遇到一個問題AttributeError: 'module' object has no attribute 'bool_',追蹤錯誤堆疊發現如下:

 原來是import io出了問題,caffe資料夾裡面也有一個io.py,而系統要求的是numpy裡面的io.py,所以沒有bool_這個模組,解決辦法:

1、不要在caffe目錄下開啟python.exe,或者你一定要在此目錄開啟,那麼請把caffe資料夾移出site-packages路徑,並配置環境變數,變數名=PYTHONPATH,值=caffe包的路徑

2、如果在VS2013專案裡面,請刪除References下面的_caffe.pyd引用,如下圖:

相關推薦

基於Windows10 x64+visual Studio2013+Python2.7.12環境Caffe配置學習

GPU Computer Capability GTX660, 680, 760, 770 compute_30,sm_30 GTX780, Titan Z, Titan Black, K20, K40 compute_35,sm_35 GTX960, 970, 980, Titan X

[Python初接觸]Windows10-32bit+Python2.7.12+OpenCV3.1.0配置

       筆者在Windows10-64bit + Python2.7.12 + OpenCV3.1.0配置上進行了配置,併成功了。現在,筆者拎起另一臺電腦進行配置,並記錄如下,望共勉。    

【轉】CentOS7.2安裝python2.7.12

itl tle local category har centos7.2 使用 read lib 原文: https://www.cnblogs.com/alex-xia/p/6062741.html https://www.cnblogs.com/baker95935/

windows安裝python2.7.12和pycharm2018教程

網上的教程太多了,因為版本不一樣每個人寫的都不太一樣。大概步驟我羅列了一下:1.先去官網下載:python-2.7.12,然後基本上下一步下一步的安裝。2.去官網下載pycharm,,我下載的是2018.2月的3.安裝pycharm,基本上是下一步,下一步。具體去百度搜索一下關鍵字即可:pycharm 201

python2.7.12的安裝以及環境配置

python2.7.12的安裝以及環境配置 1.到python官網下載python不同的版本(一般2版本比3版本穩定) https://www.python.org/(這是python下載網址) 2.我下載python2.7.12,然後安裝,選項都可以預設選擇 3.注意選擇預設的安裝路徑,一

ubuntu16.04 python2.7.12 報“ImportError: No module named site”錯

安裝完ubuntu16.04之後執行python出現此問題: Could not find platform independent libraries <prefix> Consider

linux升級Python2.7.12

第一步:下載 # wget https://www.python.org/ftp/python/2.7.12/Python-2.7.12.tar.xz 第二步: 解壓剛剛下載的壓縮包 #tar -xvf Python-2.7.12.tar.xz 第三步:新建安裝目錄 mkd

windows8.1+python2.7+selenium環境搭建

不一致 python安裝 download 支持 環境搭建 路徑 變量 python版本 python2.7 有時候,一件事的開始源於一個意想不到的契機。比如這次的換電腦,比如引起的開通博客。 既然需要重新搭建環境,我決定把這個過程記錄下來。 但是大家都知道,搭建環境本

python2.7.13環境搭建

possible 裝包 import tar.gz 安裝 fig 官網 出錯 port 查看當前系統中的 Python 版本,可以看到實驗室的這臺服務器已經安裝了 Python 2.6.6 python --version 檢查 CentOS 版本,我們可以看到這臺服務器的

python2.7 函數的參數學習

讀取 計算 add gin ttr 需求 包括 註冊 但是 1.默認參數 默認參數可以簡化函數的調用。 設置默認參數時,有幾點要註意: 一、必選參數在前,默認參數在後,否則Python的解釋器會報錯。 二、當函數有多個參數時,把變化大的參數放前面,變化小的參數放後面

Python2.7.14安裝和pip配置安裝及虛擬環境搭建

%20 環境變量path 網上 之前 安裝文件 script 記得 關於 過程 目錄 前言 1 Python2.7.14安裝 2 pip配置安裝 3 虛擬環境安裝 前言 今天在搭建阿裏雲服務器,需要安裝Python相關環境,之前在本機都已

windows10 + IntelliJ IDEA 2017.2.7 + wamp2e + xdebug 調試 配置

web應用 分享 這一 手動 alt bgp app 可能 配置 一、環境 系統: windows10 WampServer: wampserver2.2e-php5.3.13-httpd2.2.22-mysql5.5.24-32b.exe IDE: Intell

Win64環境 python2.7 pykafka 環境解決&讀寫實例

源文件 nbsp 資源文件 mic 環境安裝 https UC amd python 一:環境安裝 1.小坑 https://download.microsoft.com/download/7/9/6/796EF2E4-801B-4FC4-AB28-B59FBF6D907

virtualbox安裝ubuntu18.04及python2.7虛擬環境(含oracle客戶端的安裝)

1. 下載ubuntu18系統iso映象,使用virtual box安裝該映象 2. 安裝vitrul box增強功能,主要用來與windows系統共享資料夾 參考:https://blog.csdn.net/sinat_32582203/article/detail

PyQt4+Python2.7+PyCharm環境搭建及第一個小程式

一、搭建環境 自己安裝Python2.7和Pycharm 安裝PyQt4            進入到安裝檔案的目錄下,執行pip install PyQt4-4.11.4-cp27-cp27m-win_amd64.whl          等待安裝完成 配置Py

設定anaconda 的Python2.7虛擬環境

 用conda建一個python2虛擬環境 1. 顯示可安裝的python版本 conda search -f python 2. 安裝虛擬環境,名稱為py2 conda create -n py2 python=2.7 3. 啟用py2 利用conda info --en

Anaconda還可以在python3.5的基礎上建立一個新的獨立的python2.7環境

之前一篇使用Anaconda安裝Python3.5,Anaconda還可以建立一個新的獨立的python2.7的環境 $ conda create -n py2 anaconda python=2.7  其中py2就是你的新的python2.7環境的名稱 接下來提示你是否安

centos 6.8 安裝python2.7.x環境

簡單記錄下,centos6.x 上安裝 python2.7.x 過程: 1、系統版本:CentOS-6.8-x86_64-minimal.iso 2、安裝: 1>安裝前準備: 保證系統能上網然後用yum命令安裝以下軟體:make、zlib-devel、bzip2-de

Linux(CentOS 7環境安裝Tomcat

使用命令列安裝: 1.安裝tomcat前,需要安裝JDK,請參考博主另外一篇文章CentOS使用yum安裝jdk 2.本次安裝tomcat,使用wget下載命令安裝,需要先安裝wget命令 yum

解決 RedHat 7.3 環境離線安裝 docker 最新版本的終極辦法

一、引言 在上篇部落格中,我已經完成了在 RedHat 7.2 環境中離線化安裝 docker 1.7.1 的任務(通過 rpm 離線包)。 但是總覺得 docker 1.7.1 都已經是 2015 年的版本了,今年已經是 2018 年了,怎麼還能接受用這麼老的版本呢