Shogun编译过程
虚拟机安装
需要VMware 和 ubuntu iso文件
选择虚拟机的原因是方便在不同电脑上运行代码
ubuntuiso文件国内下载
虚拟机安装教程
Ubuntu环境设置
环境 ubuntu16.04 虚拟机
把虚拟内存调到2G以上
进入之后换源
sudo cp /etc/apt/sources.list /etc/apt/sources_init.list
sudo gedit /etc/apt/sources.list
清华源
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ xenial main restricted universe multiverse
# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ xenial main restricted universe multiverse
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ xenial-updates main restricted universe multiverse
# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ xenial-updates main restricted universe multiverse
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ xenial-backports main restricted universe multiverse
# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ xenial-backports main restricted universe multiverse
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ xenial-security main restricted universe multiverse
# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ xenial-security main restricted universe multiverse
sudo apt-get update
sudo apt-get -f install
sudo apt-get upgrade
换源遇到如下问题及解决方案:
E: Sub-process returned an error code
更换pip源
1. 根目录创建.pip文件:mkdir ~/.pip
2. 创建文件pip.conf:gedit .pip/pip.conf
3.
[global]
index-url = https://pypi.tuna.tsinghua.edu.cn/simple
[install]
trusted-host=mirrors.aliyun.com
清华的源
Shogun的安装
官网给的具体的编译流程和命令
多次安装的教训总结出来,根据github上的issue的查看
shogun因为svmlight类存在license问题,所以如果想使用多核的功能
这个工具箱最好还是手动编译
在经历了多次糟糕手动编译过程后
最好先安装编译所需要的第三方包,比如doxygen这个包,我在cmake过程中一直提示找不到,然而我通过apt-get install 还是 pip install 的方式 都无法正常安装
所以最后还是先安装所需要的第三方包
可以通过cmake . -LH的方式查看cmake 的 选项
doxygen包的安装出现的问题:
使用ubuntu默认的源,换源后就安装不上了
下面这种方式可以解决包之间依赖关系但是并不能解决当前所遇到的问题
aptitude
其他包的安装
首先安装swig
安装swig
如果需要generate examples 需要安装ctags 和ply
sudo apt-get install protobuf-compiler
sudo apt-get install doxygen
所需要的包
sudo apt-get install ccache
sudo apt-get install python-dev python-numpy
除此之外,应该还需要
Atlas
sudo apt-get install libatlas-base-dev
JSON
sudo apt-get install libjsoncpp-dev
OPENCL
shogun安装步骤
一:克隆整个项目
git clone https://github.com/shogun-toolbox/shogun.git
二:解决glpk的问题,详情去官网git的issue中搜索glpk的问题
cd shogun
git submodule update --init
或者
下载Shogun's GPL code
解压上述下载的两个文件,将shogun-gpl-6.1.3内的三个文件‘shogun’、‘LICENSE.MD'、'README.MD'复制到shogun-shogun_6.1.3/src/gpl文件内
但是必须做下面这一步
下载GLPK安装包,
./configure
make
sudo make install
sudo ldconfig
安装
mkdir build
cd build
cmake命令如下
cmake -DPYTHON_INCLUDE_DIR=/usr/include/python3.5 /usr/lib/python3.5/config-3.5m-x86_64-linux-gnu/libpython3.5.so -DPYTHON_EXECUTABLE:FILEPATH=/usr/bin/python3 -DPYTHON_PACKAGES_PATH=/usr/local/lib/python3.5/dist-packages -BUILD_META_EXAMPLES=ON -DINTERFACE_PYTHON=ON -DLICENSE_GPL_SHOGUN=ON -DUSE_SVMLIGHT=ON ..
make
sudo make install
添加环境变量:
sudo gedit ~/.bashrc
export PYTHONPATH="/home/zzz/shogun/build/src/interfaces/python/shogun.py:$PYTHONPATH"
export LD_LIBRARY_PATH="/home/zzz/shogun/build/src/shogun:$LD_LIBRARY_PATH"
source ~/.bashrc
通过sudo权限将shogun.py、_shogun.so两个文件复制到Python的安装环境下
sudo cp shogun/build/src/interfaces/python/shogun.py /usr/local/lib/python3.5/dist-packages/
sudo cp shogun/build/src/interfaces/python/_shogun.so /usr/local/lib/python3.5/dist-packages/
安装pycharm并导入路径
官网下载pycharm社区版,直接解压
设置系统路径,则可以终端启动
sudo gedit ~/.bashrc
export PATH=/home/zzz/pycharm/pycharm-community-2019.1.1/bin:$PATH
source ~/.bashrc
输出可以导入shogun的python路径,并在pycharm中的interpreter中选择这个版本的python
import sys
path = sys.executable
print(path)
在setting中找到project interpreter 并更改为可导入shogun 的python 版本
在添加窗口中可能找不到shogun,不用在意,直接在脚本中写import shogun 应该就可以运行
查看编译选项
cmake . -LH
shogun使用
官方例程
sudo apt-get Install python3-scipy
这就是安装的python3的包的命令
官方pythonAPI说明
编译中遇到的无法解释的现象,记录一下步骤
第一次编译时没有问题,但是没有安装glpk,cmake make make install 都没有问题
直接安装了 pycharm 直接使用了, mkl.train()的时候报错需要重新编译 并且安装 glpk
但是重新编译时在出现了no match for operator 这样的错误
所以重新配了一遍,安装glpk后,所有需要的包安装后,编译没有问题,在安装了pycharm
这次就没有问题了