情報系学生の備忘録

情弱系情報系学生が情強になるために残すメモです。

pythonで機械学習する環境まとめ

複数のPCにpython環境構築す度にググるの面倒なのでここで備忘録つけます.

環境 macOs Sierra 10.12.6

1. pyenvをインストール

インストール

pyenvとは, pythonのバージョンを簡単に切り替えられるツールです. gitからインストールする場合は

$ git clone git://github.com/yyuu/pyenv.git ~/.pyenv

brewコマンドが使える方は

$ brew install pyenv

でインストール出来ます.

.bashrcに設定を書き込み

$ echo 'export PATH="$HOME/.pyenv/bin:$PATH"' >> ~/.bashrc
$ echo 'eval "$(pyenv init -)"' >> ~/.bashrc
$ echo 'eval "$(pyenv virtualenv-init -)"' >> ~/.bashrc
$ source ~/.bashrc
$ pyenv -v
pyenv 1.0.10-2-geef042a

pyenvの主要コマンド

バージョン確認

$ pyenv versions

切り替え

$ pyenv global X.X.X

インストール可能なバージョン一覧

$ pyenv install --list

2. anacondaのインストール

python機械学習を行う場合はanacondaが最適です. 2.x系と3.x系がありますが, 特にこだわりがなければ 3.x系をオススメします.

インストール

$ pyenv install anaconda2-X.X.X
$ pyenv install anaconda3-X.X.X

3. jupyter notebookの起動

anacondaが上手くインストールされていれば、 下記コマンドでjupyter notebookを起動できます.

$ jupyter notebook

4. jupyterでanaconda2とanaconda3の共存

pyenvコマンドで -anaconda2をアクティブにして,

$ jupyter kernelspec install-self --user

-anaconda3をアクティブにして,

$ jupyter kernelspec install-self --user

デスクトップの整理

デスクトップからファイルにアクセスすることがないので 全て非表示にした.

defaults write com.apple.finder CreateDesktop -boolean false
killAll Finder

元に戻したい時は

defaults write com.apple.finder CreateDesktop -boolean true
killAll Finder

SSHコマンド

SSH(Secure Shell)プロトコル(クライアントとリモートマシン間の通信を暗号化)を利用するので、安全にコマンドを実行することができる。また、sshコマンドは秘密鍵・公開鍵を利用した鍵認証が利用できるので、これらを利用すればさらに安全性が高まる。

例. ユーザ名を指定してリモートマシンにsshでログイン

ssh [ユーザ名]@[ホスト名]

GAMS事始め

授業でGAMSを使うことになったので, macに実装環境を整える方法を記載する. まずはホームページでmacOSのGAMSをインストール.

GAMS - Download

インストールが完了したら, アプリケーションに入れる. ライセンスファイルgamslice.txtを/Applications/GAMS24.8/sysdirに保存する.

.bash_proflie以下のPATHを通す

#GAMS
export PATH=$PATH:"/Applications/GAMS24.8/GAMS Terminal.app/../sysdir"

PATHが上手く通っているか以下のコマンドを打つことで確認する.

gamslib trnsport
gams trnsport

出力結果が以下のように表示されれば上手くいっている.

--- Job trnsport Start 06/26/14 11:24:56 24.3.1 r46409 DEX-DEG Mac x86_64/Darwin
GAMS 24.3.1   Copyright (C) 1987-2014 GAMS Development. All rights reserved
Licensee: ...
--- Starting compilation
--- trnsport.gms(69) 3 Mb
--- Starting execution: elapsed 0:00:00.024
--- trnsport.gms(45) 4 Mb
--- Generating LP model transport
--- trnsport.gms(66) 4 Mb
---   6 rows  7 columns  19 non-zeroes
--- Executing CPLEX: elapsed 0:00:00.114

IBM ILOG CPLEX   24.3.1 ... DEG Mac x86_64/Darwin    
Cplex 12.6.0.0

Reading data...
Starting Cplex...
Space for names approximately 0.00 Mb
Use option 'names no' to turn use of names off
Tried aggregator 1 time.
LP Presolve eliminated 1 rows and 1 columns.
Reduced LP has 5 rows, 6 columns, and 12 nonzeros.
Presolve time = 0.02 sec. (0.00 ticks)

Iteration      Dual Objective            In Variable           Out Variable
     1              73.125000    x(seattle.new-york) demand(new-york) slack
     2             119.025000     x(seattle.chicago)  demand(chicago) slack
     3             153.675000    x(san-diego.topeka)   demand(topeka) slack
     4             153.675000  x(san-diego.new-york)  supply(seattle) slack
LP status(1): optimal
Cplex Time: 0.03sec (det. 0.01 ticks)

Optimal solution found.
Objective :         153.675000

--- Restarting execution
--- trnsport.gms(66) 2 Mb
--- Reading solution for model transport
--- trnsport.gms(68) 3 Mb
*** Status: Normal completion
--- Job trnsport.gms Stop 06/26/14 11:24:57 elapsed 0:00:00.487

MPI事始め

MPIとは

MPI(Message Passing Interface)は、並列コンピューティング利用するための標準化された規格. 並列処理には共有メモリ型と分散メモリ型の2通りの処理形態があるが, MPIは分散メモリ型の並列処理を行う.

コンパイル方法は

$ mpicc hoge.c

実行方法は

$ mpirun -np <並列数> <実行コマンド>

Gitコマンド

gitとしてで使用する事の宣言

git init

過去のバージョンに戻る

git reset --hard (commit number)

リセットしたバージョンに戻る

git rest --hard ORIG_HEAD

直前にしたコミットを修正

git commit --amend

使用例と共に覚えるLinuxコマンド

file1をfile2というファイルとして複製

$ cp file1 file2

hoge1ディレクトリの内容をすべてhoge2にコピー

$ cp -r hoge1 hoge2

test.txtを/Dropboxへコピー

$ cp test.txt /Dropbox

test.txtを/Dropboxへ異動

$ mv test.txt /Dropbox

ディレクトリ/hoge再帰的に削除

$ rm -r /hpge

ディレクトリ内の全てのファイルを削除 (ただし、隠しファイルは除く)

$ rm -r *