复现论文参考官方代码时需用到theano框架,本以为一个简单的pip直接搞定,无奈连import theano都无法运行,紧接着冒出来一堆问题,直接耗了我一个下午的宝贵时光。
不过所幸最终theano配置问题已经解决,可以顺利进行下面的源代码学习。在此记录一下配置theano时的一些经历供大家参考。 以下经历或许会出现部分答案和问题不对应的情况,毕竟整个过程中出现的问题较多,可能出现一些细节差错,这种情况还希望大家谅解,并自行尝试将答案与问题进行匹配(简单说就是多尝试)。
问题初现: import theano的报错如下:
WARNING (theano.configdefaults): g++ not available, if using conda: `conda install m2w64-toolchain`
balabala....................(一些代码)
configparser.NoSectionError: No section: 'blas'
balabala....................(一些代码)
KeyError: 'blas.ldflags'
balabala....................(一些代码)
AttributeError: module 'numpy.distutils.__config__' has no attribute 'blas_opt_info'
问题初步分析 第一个部分就让我很担心了,毕竟本着能省事就省事的原则,自己电脑上一直没有配置anaconda。 剩下的一堆显然是在提示缺少了一些跟“blas”相关的包,但也不能直接pip install blas或者pip install blas_opt_info什么的。所以对于一头雾水的我,只能直接C一下:windows下安装theano,上链接: 1、Windows下pycharm使用theano的方法 2、anaconda2.5+pycharm+theano环境配置 上面两个链接是我整理的比较通俗易懂的文章,总的来说,安装/配置顺序为:anaconda->mingw / libpython->theano。
安装mingw libpython 安装anaconda倒不是太麻烦,网上教程一堆,大家可以自行查找。这里为了节省时间,我安装了miniconda。安装libpython有些麻烦,教程说直接install:
conda install mingw libpython
可事实哪有这么容易,要顺利执行上述语句,得保证有mingw这个包,否则报错,所以还是老老实实去C了一下mingw。经查找,可以在以下网站找到安装包和安装指令(摘自“陆勼”的博客): mingw 4.7安装包
conda install -c free mingw
万事大吉?不不不,下载进度一直0%… 怎么办? 我试着找源文件,点击上述网站的Files,出现下面内容,显然是一些不容版本的mingw,本着随大流的原则去下载“下载量”最高的那一个(第三行红框): 鼠标放在绿色字符串右键复制链接,然后再用conda下载mingw。
conda install https://anaconda.org/free/mingw/4.7/download/win-64/mingw-4.7-1.tar.bz2
然后才可以继续安装libpython
conda install mingw libpython
此时可能还是会报错,提示channels相关的问题:
PackagesNotFoundError: The following packages are not available from current channels:
- mingw
这里要感谢这位大佬的解答:“老卫带你学”的博客 貌似是官方不让用镜像的意思,但我复制的链接是在官网复制的啊,这里有些不太理解,可能这里我记错了一些顺序,所以这个channels问题和答案的匹配问题大家可以自行尝试,输入以下指令:
conda config --remove-key channels
然后再安装mingw和libpython
conda install mingw libpython
安装theano 最后安装theano:
conda install theano
出现一堆正在安装的依赖包就可以松口气了,等待即可: 接下来尝试import theano,出现警告:
WARNING (theano.tensor.blas): Using NumPy C-API based implementation for BLAS functions.
虽然可以搜索这个bug的解决方案,网上也有很多,但我猜测是因为跟numpy有一定的依赖关系,而且代码中也要用到numpy,因而直接尝试:
import numpy as np
import theano
theano导入成功,问题解决: 完结散花
|