scikit-neuralnetwork是一个开源的深度学习的库,scikit-neuralnetwork的接口和设计规范都是参照scikit-learn,之前用过scikit-learn,对它比较熟悉,因此,准备用它作为深度学习的工具。本文主要介绍它的安装过程以及期间可能遇到的一些问题。
环境
- Ubuntu 16.04
- Python 3.5(virtualenv)
注:选择Linux的原因,由于这些库的开发者在开发的时候用的都是Linux,出问题的话对应的好解决,Windows环境也可以部署,但是稍微麻烦一些。
Python的版本选择的是3.5,在沙箱环境virtualenv中,使用virtualenv的好处就是方便管理包,出现问题也可以直接删除这个环境,避免不必要的麻烦。
安装
安装scikit-neuralnetwork之前需要安装一些依赖(需要依赖的库)。
1.进入Python的沙箱环境,安装以下依赖。1
2
3
4
5
6
7
8pip install scikit-learn==0.17
pip install scipy==0.17.0
pip install Theano==0.8.1
pip install git+https://github.com/Lasagne/Lasagne.git@0440814#egg=Lasagne==0.2-dev
sudo pip install -U numpy
pip install -e git+https://github.com/lisa-lab/pylearn2.git=Package
pip install pandas
pip install matplotlib
2.安装scikit-neuralnetwork1
2
3
4
5
6 将scikit-neuralnetwork源码从github上拷贝下来。
git clone https://github.com/aigamedev/scikit-neuralnetwork.git
进入scikit-neuralnetwork文件夹
cd scikit-neuralnetwork
安装
python setup.py develop
3.测试1
2pip install nose
nosetests -v sknn.tests
正常情况下,到这一步不出现问题就安装好了。实际情况会遇到很多问题,下面总结一下常见的问题,和解决方案。
常见问题
####各种依赖安装出错
最常见的是pylearn2。各种module不存在,cannot import等问题。
解决方案:在测试或者源码安装时,往往会出现上述情况,原因一般是版本的问题。由于网上的很多教程时间比较早,可能他们安装时不会出现这样的问题。因此,这里最好使用推荐的版本。下图是笔者安装时测试没问题的一些版本的包。
注:实在想用最新的版本,可以根据相应的问题修改源码(指的是pylearn2等第三方源码安装的),通常情况下是import出问题。
测试时出现问题
1.ERROR:no modole named XXX
通常是上述包未安装完,可以根据提示安装完对应的包。记住安装完成后,可以通过 pip list/freeze
check一下。
2.ImportError: libmkl_rt.so:cannot open shared object file: No such file or directory.
mkl是英特尔数学核心函数库,这个.so(shared object)文件就在进行上述测试时需要调用。但是找不到了。需要我们重新配置一番。
①进入官网下载。
②找到libmkl_rt.so,一般在”/opt/intel/compilers_and_libraries_2018.1.163/linux/mkl/lib“下。“2018.1.163”一般是你下载的版本。可以看到,下面可以找到其所在位置。
③让系统能找到,这里使用ldconfig方式。
在/etc/ld.so.conf.d下创建一个文件mylibs.conf(注意修改其权限为可写的)。编辑文件,将对应的路径添加进去。
注:上述路径可以不用添加那么多,这里是当时为了保险起见都加了。
④sudo ldconfig
重新加载对应的shared libraries。
⑤可以通过 ldconfig -v
check一下安装成功没有。
这个时候再使用 nosetests -v sknn.tests
进行测试就没有问题了。
3.如遇到其他问题可随时留言。
Demo
1.首先来个多层神经网络的demo,examples下的plot_mlp.py
(官网和github上也是用的这个demo)。
注:需要安装python3-tk,不然会出现上述“ERROR:no modole named XXX”错误。
2.再来个mnist数据集上的测试,随便找一个bench_mnist.py
下面是训练神经网络的过程。
注:这里由于数据量大,没有完全完全跑完,这里只是验证一下。
接下来,我们就可以愉快的进行deep learning的学习了。
参考
官网地址:
https://scikit-neuralnetwork.readthedocs.io
github地址:https://github.com/aigamedev/scikit-neuralnetwork
以上便是scikit-neuralnetwork安装的整个过程,供自己学习记录,欢迎留言和转载(注明出处)。