一、Anaconda安裝
anaconda集合了theano所需的基礎(chǔ)環(huán)境来屠。anaconda2用python2編譯,能夠支持pydot(theano所需要的畫圖的包),而anaconda3用python3編譯馍驯,不能支持pydot。
二玛痊、安裝theano汰瘫、keras
- (一)theano
After installing Anaconda, in a terminal execute this command to install the latest Theano release:
$ pip install Theano
If you want the bleeding edge version instead execute this command:
$ pip install --upgrade --no-deps git+git://github.com/Theano/Theano.git
檢驗是否安裝成功:在python中輸入import theano ,import keras 如果什么也不顯示,那就對了擂煞。如果import theano報錯混弥,嘗試安裝bleeding edge version(最新但不是穩(wěn)定版本的)。
(二) pydot 和graphviz
1.在mac 下必須用這個命令安裝pydot 和graphviz颈娜,否則即使pip install pydot 或 conda install pydot 安裝完后剑逃,還會報錯找不到pydot。
在centos下估計也可以官辽。
conda install --channel https://conda.anaconda.org/RMG graphviz
conda install --channel https://conda.anaconda.org/RMG pydot
- 2.在ubuntu 下:
1中的命令執(zhí)行完畢蛹磺,然后再執(zhí)行以下命令,就可以了
sudo apt-get install python-pydot
- (三)keras
pip install keras
三同仆、GPU運算
1.cuda安裝
(1)官網(wǎng)下載cuda sdb安裝包安裝命令如下:
sudo dpkg -i cuda-repo-ubuntu1404-7-5-local_7.5-18_amd64.deb`
sudo apt-get update`
sudo apt-get install cuda`
(2)永久環(huán)境變量(設(shè)置到 ~/.bashrc 不行萤捆,提示找不到nvcc):cd 到 /etc,用sudo gedit profile打開profile這個文件,在最后(也就是某些帖子說的“適當(dāng)位置”)添加
export PATH=$PATH:/usr/local/cuda-7.5/bin
export LD_LIBRARY_PATH=/usr/local/cuda-7.5/lib64:/lib
(3)在用戶目錄下新建.theanorc配置文件俗或,設(shè)置采用GPU替代CPU進(jìn)行運算:
新建配置文件
sudo vi ~/.theanorc
添加如下內(nèi)容:
[global]
floatX=float32
device=gpu
[nvcc]
fastmath = True
(4)測試代碼:
from theano import function, config, shared, sandbox
import theano.tensor as T
import numpy
import time
vlen = 10 * 30 * 768 # 10 x #cores x # threads per core
iters = 1000
rng = numpy.random.RandomState(22)
x = shared(numpy.asarray(rng.rand(vlen), config.floatX))
f = function([], T.exp(x))
print(f.maker.fgraph.toposort())
t0 = time.time()
for i in xrange(iters):
r = f()
t1 = time.time()
print("Looping %d times took %f seconds" % (iters, t1 - t0))
print("Result is %s" % (r,))
if numpy.any([isinstance(x.op, T.Elemwise) for x in f.maker.fgraph.toposort()]):
print('Used the cpu')
else:
print('Used the gpu')
如果輸出顯示 used the gpu 市怎,則證明一切正常。
四辛慰、鳴謝
特別感謝龍哥的無私奉獻(xiàn)区匠!