我已经安装了bleeding edge theano
,并按以下顺序安装了以下软件包:
gfortran:
sudo apt-get install gfortran
OpenBLAS:
git clone https://github.com/xianyi/OpenBLAS cd OpenBLAS make FC=gfortran sudo make PREFIX=/usr/local install
Anaconda,首先下载了Anaconda3-2.4.1-Linux-x86_64.sh,然后执行:
bash Anaconda3-2.4.1-Linux-x86_64.sh
然后,更新后安装pydot:
conda update conda conda update anaconda conda install pydot
接着,我克隆并安装了Theano:
git clone git://github.com/Theano/Theano.gitpython setup.py develop
我从windows
切换到linux
,很高兴Theano已经安装成功。
我运行了一个小脚本,以验证它确实能正确工作。
from theano import function, config, shared, sandboximport theano.tensor as Timport numpy as npimport timevlen = 10*30*768 # 假设有30个核心,每个核心有768个线程iters = 1000rng = np.random.RandomState(22)x = shared(np.asarray(rng.rand(vlen), config.floatX))f = function([], T.exp(x))print (f.maker.fgraph.toposort() )t0 = time.time()for i in range (iters): r = f()t1 = time.time()print("循环 " + str(iters) + " 次耗时 " + str(t1-t0) + " 秒")print("结果是 " + str(r))if np.any([isinstance(x.op, T.Elemwise) for x in f.maker.fgraph.toposort()]): print ("使用了CPU")else: print (" 使用了GPU")
所以,它确实工作了,这可能是一个简单的例子来证明这一点。
之后,轮到keras
git clone https://github.com/fchollet/keras.gitpython setup.py install
然后我切换到keras的examples目录,并简单地输入
python mnist_mlp.py
我得到了以下错误:
Traceback (most recent call last): File "mnist_mlp.py", line 13, in <module> from keras.models import Sequential File "/home/user/anaconda3/lib/python3.5/site-packages/Keras-0.3.1-py3.5.egg/keras/models.py", line 15, in <module> File "/home/user/anaconda3/lib/python3.5/site-packages/Keras-0.3.1-py3.5.egg/keras/backend/__init__.py", line 46, in <module> File "/home/user/anaconda3/lib/python3.5/site-packages/Keras-0.3.1-py3.5.egg/keras/backend/theano_backend.py", line 4, in <module> File "/home/user/anaconda3/lib/python3.5/site-packages/Theano-0.8.0.dev0-py3.5.egg/theano/tensor/signal/downsample.py", line 2, in <module> import poolImportError: No module named 'pool'
现在,这到底是怎么回事…我是不是漏掉了某个包?
我认为这不是keras
的问题,而是theano
的问题。
我尝试了一个肮脏的技巧,pip install pool
,然后重新运行上面的例子,但得到的错误是:
module 'pool' has no attribute 'max_pool2D'
如果需要,我也可以提供堆栈跟踪信息。
我在启动theano
时遇到了很多困难,迫切希望开始…在安装过程中耗尽所有精力之前,
回答:
似乎无法编译文件theano/tensor/signal/pool.py
,在github上有一个问题和修复方案