Skip to content

Instantly share code, notes, and snippets.

@ksomemo
Last active August 29, 2015 14:06
Show Gist options
  • Save ksomemo/4897e70c24364cf7ffda to your computer and use it in GitHub Desktop.
Save ksomemo/4897e70c24364cf7ffda to your computer and use it in GitHub Desktop.

word2vec環境構築(CentOS6.4)

概要

  • ホストOS Windows/ゲストOS CentOS6.4
  • vagrant でのゲストOS立ち上げ
  • 上記より、sudo xxx/pass:vagrant での実行をメインとする

repository 追加

wget http://ftp.riken.jp/Linux/fedora/epel/6/i386/epel-release-6-8.noarch.rpm  
sudo rpm -ivh epel-release-6-8.noarch.rpm  
wget http://ftp.riken.jp/Linux/fedora/epel/RPM-GPG-KEY-EPEL-6  
sudo rpm --import RPM-GPG-KEY-EPEL-6  
$ sudo vim /etc/yum.repos.d/epel.repo  
[epel]  
name=EPEL RPM Repository for Red Hat Enterprise Linux  
baseurl=http://ftp.riken.jp/Linux/fedora/epel/6/$basearch/  
gpgcheck=1  
enabled=0  
sudo yum clean all

Pythonアップデート

まずは下記を行う

  • 今インストールされているPythonのアップデート
  • パッケージ管理ツールをインストールするための準備
sudo yum -y --enablerepo=epel update python  
sudo yum -y --enablerepo=epel install python-distribute  

パッケージ管理

  • パッケージ管理を行えるようにする
  • 先ほどインストールしたpython-distributeによって、下記コマンドを実行できるようになっている
sudo easy_install pip

これによりパッケージ管理ツール(pip)を使用できる

Python環境切り替えの準備

pipで下記の環境切り替えツールをインストールする

sudo pip install virtualenv  
sudo pip install virtualenvwrapper  

環境切り替えのための設定をログイン時に行うために下記を実行し設定ファイルに追記する

echo 'source /usr/bin/virtualenvwrapper.sh' >> ~/.bashrc

実行しておく

source ~/.bashrc

各環境は下記に格納される

echo $WORKON_HOME  
/home/vagrant/.virtualenvs  

処理系を複数インストール

まずは切り替えるためのPython処理系をインストールする
Python3系をインストールしようとしたが、リポジトリにないのでpythonzを使うことにした

curl -kL https://raw.github.com/saghul/pythonz/master/pythonz-install | bash

pythonzの設定をログイン時に行うために下記を実行し設定ファイルに追記する

vim ~/.bashrc
if [ -s $HOME/.pythonz/etc/bashrc ]; then  
    source $HOME/.pythonz/etc/bashrc  
fi  

実行しておく

source ~/.bashrc

pythonzを実行できるかを確認する

which pythonz  
~/.pythonz/bin/pythonz  
pythonz version
1.5.1

インストール可能一覧

インストールに必要なバージョン情報を確認するために行う

pythonz list -a

インストール

一覧より確認したCPythonの2系と3系の最新をインストールする

pythonz install 2.7.8 3.4.1

インストールパスの確認

Python環境切り替えの実行に必要なパスを確認する

pythonz list -p  
  CPython-2.7.8    /home/vagrant/.pythonz/pythons/CPython-2.7.8  
  CPython-3.4.1    /home/vagrant/.pythonz/pythons/CPython-3.4.1  

Python環境作成

インストールパスの後ろにbin/pythonをつけて、処理系を特定し、環境に名前をつける また環境の削除は、~/.virtualenvsを対象に削除するので、ここで環境も作成すること

cd ~/.virtualenvs  
mkvirtualenv -p /home/vagrant/.pythonz/pythons/CPython-2.7.8/bin/python py27  
mkvirtualenv -p /home/vagrant/.pythonz/pythons/CPython-3.4.1/bin/python py34  
  • 実行したディレクトリに環境名のディレクトリが作成される
  • 環境ごとにpipもインストールされていた
  • 作成すると、その環境に切り替わる(プロンプト表示の左に環境名が表示される)

環境切り替え

元の環境への切り替えは、以下のコマンドを実行する

source ~/.virtualenvs/py27/bin/activate

または、workon py34 で作成済み環境を指定できる

別の環境への切り替えは deactivate で行う

Pyenvによる切り替え

pythonzとは違い、3.4から標準モジュールとして追加されているらしいのでこちらのほうがよい

インストールと設定

cd ~  
wget https://github.com/yyuu/pyenv/archive/master.zip  
unzip master  
mv pyenv-master .pyenv  
rm -rf master  

vim ~/.bashrc

export PYENV_ROOT=$HOME/.pyenv  
export PATH=$PYENV_ROOT/bin:$PATH  
eval "$(pyenv init -)"  
source ~/.bashrc

処理系インストール

pyenv install 2.7.8  
pyenv install 3.4.1  
pyenv rehash

環境切り替えプラグイン

virtualenvを使っている

cd ~  
wget https://github.com/yyuu/pyenv-virtualenv/archive/master.zip  
unzip master  
mv pyenv-virtualenv-master ~/.pyenv/plugins/pyenv-virtualenv  
rm -rf master  

vim ~/.bashrc

eval "$(pyenv virtualenv-init -)"
source ~/.bashrc

環境作成

pyenv virtualenv 2.7.8 py27  
pyenv virtualenv 3.4.1 py34-1  

下記もインストールされる

  • virtualenv
  • Setuptools
  • pip

環境一覧

pyenv virtualenvs

環境切り替え

pyenv activate py34-1

プロンプト表示はvirtualenvと同じ

pyenv deactivate

word2vecのインストール

  • subversionでチェックアウトする
  • CentOS6.4ではsubversionインストール済みである
mkdir ~/word2vec
svn checkout http://word2vec.googlecode.com/svn/trunk
Checked out revision 41.

一度試してダメならmakefileの修正

前:CFLAGS = -lm -pthread -O3 -march=native -Wall -funroll-loops -Wno-unused-result
後:CFLAGS = -lm -pthread -O3 -Wall -funroll-loops
cd trunk
make

下記が作成される

  • compute-accuracy
  • distance
  • word2phrase
  • word2vec
  • word-analogy
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment