日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 运维知识 > Ubuntu >内容正文

Ubuntu

caffe安装_Ubuntu 16.04 下 Theano 安装,及配置多 GPU使用(Multiple GPUs)

發(fā)布時間:2025/3/12 Ubuntu 29 豆豆
生活随笔 收集整理的這篇文章主要介紹了 caffe安装_Ubuntu 16.04 下 Theano 安装,及配置多 GPU使用(Multiple GPUs) 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

寫在前面

本文主要是針對 theano 的多 GPU 使用問題,做一個記錄與總結(jié)。 在此之前我沒有接觸過關(guān)于 Theano 框架的內(nèi)容,也是因?yàn)槟承┰蛐枰芯恳幌?theano 框架是否可以使用 GPU,如果可以,如何配置使用多 GPU。下面的內(nèi)容寫的很詳細(xì),甚至有點(diǎn)冗長,為了詳細(xì)說明,貼了很多中間的步驟圖,可以說很詳細(xì)了,無非也是記錄自己在一個之前沒有任何接觸的情況下,遇到了哪些問題,包括遇到這些問題我是如何處理和解決的。還好最后問題都一一解決了,不然也不會有這篇文章了 :( ,剛開始接觸和配置的前一個小時內(nèi),只配置好了Theano 單 GPU,當(dāng)時查多 GPU 問題,沒有什么答案,我甚至也給這個框架下了定義,它只能指定一塊 GPU 訓(xùn)練,但是一步一步去查找,最后柳暗花明了。有些問題還是不能輕易放棄!可能不是沒有方法,只是我們了解的還不夠,希望給看到這篇文章的朋友,提供一些經(jīng)驗(yàn)(當(dāng)然了,對大??隙ㄊ呛芷匠5氖虑?#xff0c;大牛請自動忽略)。重要的不是內(nèi)容,而是解決問題的思路和方法。

內(nèi)容概括

因?yàn)槲恼潞荛L,寫的又很詳細(xì),看完需要一定的耐心和時間,這里先給出一個內(nèi)容概括:

本文是在 Ubuntu 16.04 + CUDA9.0 + CUDNN 7 + Anaconda 3(python 3.6) 下進(jìn)行的,配置了 Platoon 和 Synkhronos 兩個數(shù)據(jù)并行庫來使用多 GPU:

  • Synkhronos 只支持 Python3,并且不支持 Windows 平臺,有提供官方學(xué)習(xí)文檔,但是需要額外的一些經(jīng)歷去學(xué)習(xí)如何使用
  • Platoon 并未看見有什么限制,而且被 theano 官方文檔所推薦,并且theano 官方文檔給出了一些使用例程

就安裝過程中的測試樣例來看, Platoon 的學(xué)習(xí)成本更低一些(即可以更快上手使用),Synkhronos 需要一定時間摸索它的使用方法,所以推薦安裝 Platoon.

正文

Theano 框架在2017年9月29日,Yoshua Bengio 教授宣布將不再更新。稍微使用過現(xiàn)在比較流行的框架,例如: Pytorch, Keras, Tensorflow 等,在框架環(huán)境安裝完成以后都可以通過在訓(xùn)練時直接設(shè)置一些語句實(shí)現(xiàn)多 GPU 的使用,只要環(huán)境配置好無需額外安裝其他東西,但是對于一些相對來說老牌的框架步驟就會復(fù)雜一些,例如本文的主角 Theano ,以及Caffe, Caffe 需要在配置前安裝 NCCL,然后在編譯Caffe 的時候選擇 USE_NCCL 選項(xiàng),才可以在后面的使用中使用多GPU來訓(xùn)練,theano 也需要做一些準(zhǔn)備工作。

下面的配置和安裝均是在: Ubuntu 16.04 + CUDA9.0 + CUDNN 7 + Anaconda 3(python 3.6) 下進(jìn)行的。

1. 安裝 Theano

這里不多提,官方文檔也給出了安裝方法:

這里直接:

conda install theano pygpu

默默根據(jù)步驟下載完即可。

下載完,有的會在 python 環(huán)境里直接 import theano ,有的會在程序運(yùn)行時,報出含有下面關(guān)鍵詞的錯誤:

Can not use cuDNN on context None: cannot compile with cuDNN. xxxxxx

包括另一個錯誤:

ERROR (theano.gpuarray): Could not initialize pygpu, support disabled

所以我們還應(yīng)該完成一些配置工作,首先新建一個 .theanorc 配置文件:

sudo gedit ~/.theanorc

在其中輸入:

這里根據(jù)自己的 cuda 版本替換一下對應(yīng)的位置就可以了

到這里我們的 theano 環(huán)境基本搭建完成!

2. Theano 的多 GPU 使用問題

下面主要說明一下,查找 theano 如何使用多 GPU 相關(guān)資料的過程,以及一些第三方庫配置過程中可能出現(xiàn)的問題。

前面提到的官方文檔,其實(shí)給出了一些答案。
.

可以看到,device=cuda 我們在 .theanorc 文件中已經(jīng)配置好了,在使用中通過添加 THEANO_FLAGS='device=cuda{0,1,...}' 便可以指定某一塊GPU,習(xí)慣了 Caffe 里面 -gpu=0,1,2,3,以及Pytorch里面 CUDA_VISIBLE_DEVICES='0,1,2,3' 設(shè)置多GPU 使用的同學(xué)一定躍躍欲試,THEANO_FLAGS='device=cuda{0,1,2,3}'就可以同樣使用多 GPU 了? No,No,No, 注意這里 {0,1,...} 的意思是在這些數(shù)字里面選一個,cuda0,cuda1,cuda2 分別代表不同的GPU,如果想上面那種寫法,這里我有4塊 GPU, THEANO_FLAGS='device=cuda{0,1,2,3}' 會報錯說不認(rèn)識 '{0' 這個字符的。 然后我轉(zhuǎn)身就去尋求網(wǎng)絡(luò)上的幫助了,百度里基本都只是在安裝及配置 theano 使用單GPU 時的一些問題及回答,該做的都做了,單 GPU 已經(jīng)可以跑通官方文檔給的小例程了,多GPU 無論怎么改還是不行。

那怎么辦呢?

我點(diǎn)進(jìn) Github 里 theano 項(xiàng)目的 issues 輸入關(guān)鍵詞: multi GPU ,然后搜索。

在問題的第一頁,目光就鎖定在了上面框出的兩個問題。

題目為: MultiGPU: ValueError: Could not infer context from inputs #6655 的問題,點(diǎn)進(jìn)去一看,問題其實(shí)沒人解決,里面給了個鏈接, google 的,沒翻墻打不開。

最終的解決思路來自于:已經(jīng)被關(guān)閉的問題 theano-0.10.0beta2 even simple funcs crash in multi-GPU setup after recompile #6422,也就是第二個紅框。

點(diǎn)開看完問題描述,下面有一個人的回復(fù)很關(guān)鍵:
.

從上面的回答可以看出,theano 框架不能直接支持多 GPU 訓(xùn)練,但是我們可以借助一些基于 theano 的第三方的庫來實(shí)現(xiàn),我們繼續(xù)點(diǎn)開上面的鏈接可以看到:
.

最上面就是介紹了一些在 Theano 上拓展的,使用多 GPU 的并行庫,正是我想要的!

Synkhronos 庫

這里以第一個 Synkhronos 為例,我們點(diǎn)擊進(jìn)去直接就會跳轉(zhuǎn)到 Synkhronos 的 github 項(xiàng)目,最下面 ReadME 介紹了官方文檔。
.

繼續(xù)點(diǎn)擊這個文檔鏈接,可以看到是一個很全面的手冊:

直接選擇左側(cè)的 1. Installation。 根據(jù)文檔內(nèi)容,要安裝這個庫依次輸入以下內(nèi)容:

git clone https://github.com/astooke/Synkhronos
cd Synkhronos
pip install . // 注意 install 的后面有一個小點(diǎn)

然后需要安裝這個庫的一些依賴項(xiàng):

conda posix_ipc
conda pyzmq

至此 Synkhronos 庫就安裝好了。

從官方文檔可以看出,目前只支持 Python3 以及非 Windows 版本。

首先在使用 Synkhronos 給出的測試小程序時會報錯如下錯誤:

好消息是,從上面的內(nèi)容可以看出,可以使用多 GPU 了,但是下面這個問題剛開始還是有點(diǎn)抓不著頭腦的,乍一看,是我自己少東西了吧,百度了這個錯誤,根本沒有相關(guān)結(jié)果,查看了 Synkhronos 項(xiàng)目的 issues(只有 2 個問題),也沒有人問,找了一圈也沒找到我少的這個東西該怎么辦。 我們就來看一下這個函數(shù)的定義吧:

這個函數(shù)不是很復(fù)雜,可以看到上面紅框位置是我們程序報錯的地方,仔細(xì)一讀該函數(shù)的定義,主要是綠框部分的內(nèi)容,大概意思是:這個函數(shù)會自動將 Theano 中的 functions 的數(shù)據(jù)壓縮成一個 pkl 文件,然后再讀取它。

原來這個東西是自己生成的,那我們就刨根問底,去報錯的路徑下看一看,到底有什么:

可以對比上面報錯的信息,這個路徑下連名字為pkl的文件加都沒有,肯定找不到對應(yīng)的.pkl文件,只要在這里手動新建一個名字為 pkl 的文件夾就可以了。 再次運(yùn)行程序,這個錯誤就解決了。 四個 GPU 就可以使用了。

再追根問底以下,上面的綠色區(qū)域最后一句寫了,可以在 synkhronos/utils.py 中修改對應(yīng)的 pkl 路徑, 下面我們找到這個文件,打開一看,果然有這個子文件夾是因?yàn)檫@里面紅框區(qū)域設(shè)定了,我們不新建文件,直接在這里做改動,將 'pkl/' 改成 '/' 也可以。

反過來,最根本的還是在安裝的第一步 git clone 以后,在項(xiàng)目的 synkhronos/utils.py 中直接修改,然后再運(yùn)行 pip install . 應(yīng)該就不會有以上 pkl 路徑的錯誤了。

Platoon 庫

其實(shí)在 theano 的官方文檔里,也給出了答案,但是剛開始真的沒看到!!! Using the GPU 的下面就是 Using multiple GPUs

我們點(diǎn)進(jìn)去,可以看到官方文檔說,為了數(shù)據(jù)并行化,你最好使用 platoon, 我們再來看一下剛才那張羅列 theano 第三方庫的圖:

第 3 個就是 Platoon,噢,原來還是要安裝第三方庫,那么我們就也看一下吧。 安裝步驟類似于 Synkhronos,點(diǎn)擊名字直接跳到 platoon 的 Github 項(xiàng)目。

git clone https://github.com/mila-udem/platoon
pip install -e /path/to/platoon

安裝完以后就可以了,我們再回到 theano 的官方文檔,里面給了我們測試的命令和小例程,我們新建一個名為 theano_demo.py 的文件,內(nèi)容為 :

import numpy import theanov01 = theano.shared(numpy.random.random((1024, 1024)).astype('float32'),target='dev0') v02 = theano.shared(numpy.random.random((1024, 1024)).astype('float32'),target='dev0') v11 = theano.shared(numpy.random.random((1024, 1024)).astype('float32'),target='dev1') v12 = theano.shared(numpy.random.random((1024, 1024)).astype('float32'),target='dev1')f = theano.function([], [theano.tensor.dot(v01, v02),theano.tensor.dot(v11, v12)])print(f())

然后在命令行里輸入:

THEANO_FLAGS="contexts=dev0->cuda0;dev1->cuda1" python theano_demo.py

輸出為:

可以看到我指定了 2 個 GPU ,使用了 2 個 GPU。至此兩個 theano 的多 GPU 庫都配置完成了。

總結(jié)

以上是生活随笔為你收集整理的caffe安装_Ubuntu 16.04 下 Theano 安装,及配置多 GPU使用(Multiple GPUs)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 激情网站视频 | 91手机视频在线观看 | 亚洲一区二区观看 | 日韩一区二区精品 | 激情三级在线 | 成人午夜视频在线观看 | 亚洲精品视频久久久 | 久久精品99久久久 | 亚洲av无码一区二区三区四区 | 国产吃瓜在线 | 成人午夜精品一区二区三区 | 中文字幕亚洲一区二区三区五十路 | 六月丁香久久 | 亚洲精品影院在线 | 欧美日韩在线第一页 | 五月天一区二区 | 一级看片 | 亚洲高潮无码久久 | 91国内 | 在线观看aa | 免费在线看污片 | 欧美香蕉网 | 免费av观看网站 | 久久伊人热 | 国产精品乱码久久久久久 | 麻豆av免费看| 国产又粗又猛视频免费 | 久久麻豆精品 | 国产欧美一区二区三区视频在线观看 | 欧美爱爱网址 | 一区二区三区亚洲精品 | 天堂欧美城网站网址 | 色撸撸av | 免费在线观看av片 | 制服一区 | 五月综合在线 | 无码人妻久久一区二区三区不卡 | 一区二区三区四区欧美 | 久伊人网 | 日本成人动漫在线观看 | 在线播放av片| 在线观看视频免费 | 久久人妻无码aⅴ毛片a片app | 免费毛片一级 | 男人操女人网站 | 特大黑人娇小亚洲女 | 免费黄色av片 | 日韩午夜激情电影 | 国产精品无码电影 | 免费观看成人在线视频 | 美女隐私黄www网站动漫 | 粗大黑人巨茎大战欧美成人 | 久久网免费视频 | 国产三级视频在线播放 | www.五月天激情 | 久久成人综合网 | 日日夜夜影院 | 国产免费一区,二区 | 蜜桃av乱码一区二区三区 | 校园春色综合 | 亚洲熟妇一区二区 | 四虎少妇做爰免费视频网站四 | 亚洲精品97久久中文字幕无码 | 国产精品一区二区三区在线 | 久久久美女视频 | 丁香激情五月少妇 | √资源天堂中文在线 | 国产一区二区三区黄 | 色午夜婷婷 | 日本亚洲网站 | 国产级毛片 | 国产精品精东影业 | 国产一区二区三区四区五区六区 | 热热热热色 | 69网址 | 一区二区三区美女视频 | 天堂中文资源在线 | 欧美一级日韩 | 日韩av一区二区三区 | 天天干夜夜操视频 | 久久亚洲一区二区三区四区 | aaa一级片| 情五月| 在线成人免费电影 | 久久av无码精品人妻出轨 | 国产精品影音先锋 | 有码在线视频 | 精品一区二区电影 | 干干干操操操 | 精精国产xxxx视频在线 | 91婷婷在线 | 亚洲欧美激情另类 | 伊人亚洲影院 | ass极品水嫩小美女ass | 极品白嫩丰满美女无套 | 午夜理伦三级做爰电影 | 亚洲第一伊人 | 性欧美精品中出 | 国产成人毛片 |