机器学习系统--GraphLab

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了机器学习系统--GraphLab相关的知识,希望对你有一定的参考价值。

参考技术A

介绍分布式机器学习系统架构GraphLab。

是一个以数据为中心的机器学习系统。

实际中很多模型都可以转化为图的形式:

我们之前已经有了基于BSP Model的Pregel,其主要特点是需要进行同步(双屏障),而同步是由最慢的节点决定,造成:

因此,在GraphLab中,针对这三点分别进行了改进:

与Giraph中的 compute 相似,需要:

最重要的不同点:

哪一个更好?

决定了迭代中顶点处理的顺序

一个智障安装了一天的python和graphlab的血泪史

大概的过程是这样的:

先装了python3.6.1.,然后发现搞错了Σ(  ̄□ ̄||),是32 bit的,卸了重装python 3.6.1 (64bit)。

然后装easy_install、pip、ipython notebook。历经千辛万苦搞定了ipython notebook之后,

再去turi下载graphlab,发现这玩意要求python 2.7的环境。。。(╯°口°)╯(┴—┴

还能怎么办呢只有重新装python2.7 64bit,

然后直接按turi推荐的步骤,先安装anaconda,再装graphlab,

最后在ipython notebook里import graphlab。。。(╯°口°)╯(┴—┴

 

总结下遇到的一些问题。

 

 

1. 32bit和64bit的安装包。

进入python官网  https://www.python.org/downloads/windows/

可以看到如下一堆可下载的安装包。

框出来的这两个都是 32bit 的。

 

64bit的在哪呢,这里。

其他的安装python注意事项:

1.记得要勾添加到path这一项或者之后手动添加路径

2. install for all users。

 

2. 安装 easy install 时报错TypeError: chown() missing 1 required positional argument: \'numeric_owner\'

下载ez_setup-0.9.tar压缩包,地址:https://pypi.python.org/pypi/pip

解压后cmd里到相应的目录下运行python ez_setup.py

然后就一直报错

TypeError: chown() missing 1 required positional argument: \'numeric_owner\'

解决方法:

在stackoverflow里找到解决办法就是找到压缩包里ez_setup.py这个文件然后手动把

self.chown(tarinfo, dirpath)

改为

chown(tarinfo, dirpath, \'\')

由于不知道怎么打开.py文件(就是这么菜),我是用记事本打开的orz

解决了orz

 

 

3.ipython notebook 安装

装pip。安装方法:https://pip.pypa.io/en/latest/installing.html

然后 cmd运行  pip install jupyter notebook

启动notebook :

在cmd运行 jupyter notebook,

然后再网址输localhost:8888,会弹出一个页面要你输token。

打开后界面大概是这样的

Ipython notebook里的文档在哪呢?

在notebook里右上New,拖下来点python 3, 弹出一个新的可以输入的窗口,然后输入

import os

print os.getcwd()

运行得到

输出的就是ipython notebook 文件存的地址。

 

最后一点。。。应该不会有人和我一样在运行ipython notebook时把cmd关了吧(怕不是个智障)( ̄ε(# ̄) Σ 

 

 

4.Anaconda 安装时路径错误

装python2.7

由于turi推荐装anaconda最后一步就是IPython Notebook,

装好python 2.7之后就不管其他的了,直接按照turi的步骤来。

Turi推荐的步骤:

 

Option 1: Install into Anaconda Python Environment (recommended)

Step 1:下载 Anaconda2 v4.0.0

Step 2: 安装 Anaconda

 

安装进度条到最后开始各种报错QUQ

我已经不记得试过多少方法了_(:3」∠)_

最后一次安装时 以管理员身份运行 好像可以解决 _(:3」∠)_

 

Step 3: Create conda environment

安装成功后在cmd里运行

# Create a new conda environment with Python 2.7.x

conda create -n gl-env python=2.7 anaconda=4.0.0
# Activate the conda environment

activate gl-env

 

Step 4: Ensure pip version >= 7

# Ensure pip is updated to the latest version

conda install pip

conda update pip

 

Step 5: Install GraphLab Create

# Install your licensed copy of GraphLab Create

pip install --upgrade --no-cache-dir https://get.graphlab.com/GraphLab-Create/2.1/注册使用的邮箱/注册时给的产品密钥/GraphLab-Create-License.tar.gz

 

Step 4: Ensure installation of IPython and IPython Notebook

# Install or update IPython and IPython Notebook

conda install ipython-notebook

不知道为什么 Step 5: Install GraphLab Create 后面是 Step 4: Ensure installation of IPython and IPython Notebook  orz

 

全部成功安装之后打开ipython notebook

 

 

 

5.最后 import graphlab。。。心好累啊_(:3」∠)_

在ipython notebook 里新建,然后 import graphlab

又出问题了(/TДT)/

不过上面有提示,按步骤来。

按要求先修改了C:\\Anaconda2\\envs\\gl-env\\lib\\site-packages\\graphlab的写入权限

然后运行
graphlab.get_dependencies()

Downloading xz.之后就不动了,等了20分钟左右吧。


一堆报错。

然后我只能再打开记事本试图改程序(垂死挣扎)。。。

参考了博客:

http://blog.csdn.net/u013569000/article/details/53886656?locationNum=2&fps=1

简单来说问题原因是因为网络的问题下载包会多次失败,无法安装完整。

解决办法就是找到 get_dependencies() 的源码,然后直接从源码里得到下载网址,手动下载,然后把源码里的文件位置相应修改就可以了。

我试了下。

运行的程序是 C:\\Anaconda2\\envs\\gl-env\\Lib\\site-packages\\graphlab\\dependencies.py ,打开,得到下载的网址。

(xzarchive_file, xzheaders) = urllib.urlretrieve(\'http://tukaani.org/xz/xz-5.2.1-windows.zip\')
(dllarchive_file, dllheaders) = urllib.urlretrieve(\'http://repo.msys2.org/mingw/x86_64/mingw-w64-x86_64-gcc-libs-5.1.0-1-any.pkg.tar.xz\')

 

下载了两个安装包,都放在E盘,然后改源码

33 #(xzarchive_file, xzheaders) = urllib.urlretrieve(\'http://tukaani.org/xz/xz-5.2.1-windows.zip\') #注释掉    
34 xzarchive_file = \'E:\\\\xz-5.2.1-windows.zip\'
35 #xzarchive_dir = tempfile.mkdtemp()#注释掉 
36 xzarchive_dir = \'E:\\\';
43 #(dllarchive_file, dllheaders) = urllib.urlretrieve(\'http://repo.msys2.org/mingw/x86_64/mingw-w64-x86_64-gcc-libs-5.1.0-1-any.pkg.tar.xz\')
44 dllarchive_file = \'E:\\\\mingw-w64-x86_64-gcc-libs-5.1.0-1-any.pkg.tar.xz\'
45 #dllarchive_dir = tempfile.mkdtemp()
46 dllarchive_dir = \'E:\\\'

搞定,运行

然后Σ(  ̄□ ̄||)

这是为什么啊(/TДT)/ 连文件读写都会报错了么(╯°口°)╯(┴—┴

 

换个地址试了下,把文件存在 E:\\python_graphlab,修改源码

#(xzarchive_file, xzheaders) = urllib.urlretrieve(\'http://tukaani.org/xz/xz-5.2.1-windows.zip\')
xzarchive_file = \'E:\\python_graphlab\\\\xz-5.2.1-windows.zip\'
#xzarchive_dir = tempfile.mkdtemp()
xzarchive_dir = \'E:\\python_graphlab\';
 #(dllarchive_file, dllheaders) = urllib.urlretrieve(\'http://repo.msys2.org/mingw/x86_64/mingw-w64-x86_64-gcc-libs-5.1.0-1-any.pkg.tar.xz\')
dllarchive_file = \'E:\\python_graphlab\\\\mingw-w64-x86_64-gcc-libs-5.1.0-1-any.pkg.tar.xz\'
#dllarchive_dir = tempfile.mkdtemp()
dllarchive_dir = \'E:\\python_graphlab\'

 

然后…好了…

???某种玄学的神秘力量??

 

以上是关于机器学习系统--GraphLab的主要内容,如果未能解决你的问题,请参考以下文章

Graphlab create的基本使用

ubuntu14.04下搭建GraphLab集群

看DeepMind如何用Reinforcement learning玩游戏

Spark学习之路 (二十八)分布式图计算系统

Spark学习之路 (二十八)分布式图计算系统[转]

《机器学习实战》-机器学习基础