Qiita Teams that are logged in
You are not logged in to any team

Log in to Qiita Team
Community
OrganizationAdvent CalendarQiitadon (β)
Service
Qiita JobsQiita ZineQiita Blog
Help us understand the problem. What is going on with this article?

LITTLEGEAR i310にchainerとTensorflowを入れて Jupyter Notebookで開くようにした時の作業メモ

More than 3 years have passed since last update.

2016年くらいにやった時のメモなので、今ならもっと簡単に出来るはず…
ドライバとかライブラリのバージョンも古いので注意

TitanXを積んだLITTLEGEAR i310をGPGPU用のマシンにするべく、
ubuntu14.04.4入れて、TensorflowとchainerをGPU動作させて、 Jupyter Notebookで開けるようにした時のメモ

UbuntuのOSを入れる

  1. http://www.ubuntu.com/download/desktop 焼く
  2. ブート優先度を変える。 Securebootをother osにかえる
  3. (真っ黒な画面で止まってしまうので)選択画面の Try Ubuntu without installing上で eを押す。 quiet splash を nomodeset に変更 F10でブート。(何もせずにそのまま10分待つだけで良いという話もある。試してないが)
    http://qiita.com/kunihikot/items/588f39b4b11024ae0c41 http://askubuntu.com/questions/712575/ignoring-bgrt-invalid-status-0-expected-1

  4. そして真っ暗になっても辛抱強く待つ

  5. そうするとOSが起動するので インストールする
    マウントして、PC名、ユーザー名、パスワードを登録する

  6. ブート優先度を戻すとHDDからの起動時にも紫色の画面で止まってしまったので、 F6キーを押して、ブート選択画面を表示。一番上でeキーを押す。 quiet splash を nomodeset に変更 F10でブート

  7. Ubuntuが起動したら、 /etc/default/grubをデスクトップに移してgeditで書き換える
    http://christina04.blog.fc2.com/blog-entry-162.html

vi使うときは
:set nocompatible
とうつ

GRUB_DEFAULT=0
#GRUB_HIDDEN_TIMEOUT=0  
GRUB_HIDDEN_TIMEOUT_QUIET=true
GRUB_TIMEOUT=10
GRUB_DISTRIBUTOR=`lsb_release -i -s 2> /dev/null || echo Debian`
#GRUB_CMDLINE_LINUX_DEFAULT="quiet splash"
GRUB_CMDLINE_LINUX_DEFAULT="nomodeset"
GRUB_CMDLINE_LINUX=""
のように編集したgrubを

ls /home/ubuntu/Desktop
sudo su
cp /home/ubuntu/Desktop/grub .
で元の場所に移す

update-grub
を実行

参考:http://qiita.com/bohemian916/items/8c7f0c4b3d3ea0958559

CUDAを入れて、2つのvirtualenv環境にそれぞれtensorflowとchainerを入れる

参考その1 https://www.tensorflow.org/versions/r0.8/get_started/os_setup.html
参考その2(ほぼこれの通り) http://qiita.com/naomi7325/items/789b256a2c61dbe8ed00

SSHの設定
sudo su

apt-get install ssh
vi /etc/ssh/sshd_config
 PasswordAuthentication yes
 #RSAAuthentication yes
 #PubkeyAuthentication yes
 に変える
 
service ssh restart
でssh ユーザー名@PC名 でつながるようになった(ユーザー名は小文字じゃないといけない)

参考:http://webkaru.net/linux/ssh-password-auth-prohibit/
###################################################################

FTPの設定
apt-get install vsftpd
vi /etc/vsftpd.conf
 write_enable=YES
 にする
service vsftpd restart

これでCyberduck(MacのFTPクライアントで)
PC名とユーザー名を入力して平文のパスワード入力で繋がる。
http://www.server-world.info/query?os=Ubuntu_14.04&p=ftp

###################################################################

pythonの設定

pyenvの導入 http://qiita.com/Kodaira_/items/feadfef9add468e3a85b

sudo apt-get install git gcc make openssl libssl-dev libbz2-dev libreadline-dev libsqlite3-dev

exit
でユーザーを一般ユーザーに戻してから
cd /home/ユーザ名
git clone https://github.com/yyuu/pyenv.git ~/.pyenv
sudo chown -R グループ名:ユーザー名 ~/.pyenv


vi ~/.profile 
:set nocompatible
と打って
------------------------------------------------------------------------------------------------------------
export PYENV_ROOT=$HOME/.pyenv
export PATH=$PYENV_ROOT/bin:$PATH
eval "$(pyenv init -)"
------------------------------------------------------------------------------------------------------------
を末尾に入れる。SSH接続しなおす

pyenvを入れる
pyenv install --list
pyenv install 2.7.11
pyenv global 2.7.11
pyenv rehash
pyenv versions

cuda7.0を入れる
sudo dpkg -i cuda-repo-ubuntu1404_7.0-28_amd64.deb
sudo apt-get update
sudo apt-get install cuda-7-0

CuDNN6.5をいれる
tar xvf cudnn-6.5-linux-x64-v2.tar  
sudo cp cudnn-6.5-linux-x64-v2/cudnn.h /usr/local/cuda/include
sudo cp cudnn-6.5-linux-x64-v2/libcudnn* /usr/local/cuda/lib64
sudo chmod a+r /usr/local/cuda/lib64/libcudnn*

#一旦再起動
reboot
ssh ユーザー名@PC名
#インストール
sudo apt-get install python-pip python-dev python-virtualenv
#コンテナ作成
virtualenv --system-site-packages ~/tensorflow-GPU
#virtualenvでつないだときにCUDAのPATHを貼る設定
vi ~/tensorflow-GPU/bin/activate
------------------------------------------------------------------------------------------------------------
export LD_LIBRARY_PATH="$LD_LIBRARY_PATH:/usr/local/cuda/lib64"
export CUDA_HOME=/usr/local/cuda
------------------------------------------------------------------------------------------------------------
を末尾に追記

git clone --recurse-submodules https://github.com/tensorflow/tensorflow
cd ~/tensorflow
chmod +x ./configure
sudo apt-get install swig

pip install numpy

cd ~/tensorflow
./configure
Pythonのパス /home/ユーザー名/.pyenv/versions/3.4.4/bin/python3.4 ではなくデフォルト
gpuサポート y
gccの場所 デフォルト
CUDA SDK version 7.0
CUDA toolkitの場所 /usr/local/cuda-7.0
Cudnn version 6.5
cuDNNの場所 デフォルト

#Tensorflow コンテナを用意
cd ~/tensorflow-GPU
source bin/activate
#コンテナにTensorflowを入れる
sudo pip install --upgrade https://storage.googleapis.com/tensorflow/linux/gpu/tensorflow-0.8.0rc0-cp27-none-linux_x86_64.whl

#cuda 7.5も必要らしいのでいれる
#deactivate
#sudo apt-get install cuda
#やっぱりいらなかったっぽい
#sudo apt-get remove cuda

#チュートリアルのコードでテスト
cd ~/tensorflow-GPU
source bin/activate
cd ~
mkdir workspace
cd workspace
mkdir mnisttest
cd ~/workspace/mnisttest
wget https://github.com/tensorflow/tensorflow/raw/r0.8/tensorflow/examples/tutorials/mnist/mnist.py
wget https://github.com/tensorflow/tensorflow/raw/r0.8/tensorflow/examples/tutorials/mnist/input_data.py
wget https://github.com/tensorflow/tensorflow/raw/r0.8/tensorflow/examples/tutorials/mnist/fully_connected_feed.py
python fully_connected_feed.py
deactivate

結果
Step 0: loss = 2.31 (0.570 sec)
Step 100: loss = 2.13 (0.001 sec)
Step 200: loss = 1.86 (0.001 sec)
Step 300: loss = 1.53 (0.001 sec)
Step 400: loss = 1.32 (0.001 sec)
Step 500: loss = 0.89 (0.001 sec)
Step 600: loss = 0.78 (0.001 sec)
Step 700: loss = 0.65 (0.001 sec)
Step 800: loss = 0.68 (0.001 sec)
Step 900: loss = 0.59 (0.001 sec)
Training Data Eval:
  Num examples: 55000  Num correct: 47460  Precision @ 1: 0.8629
Validation Data Eval:
  Num examples: 5000  Num correct: 4348  Precision @ 1: 0.8696
Test Data Eval:
  Num examples: 10000  Num correct: 8697  Precision @ 1: 0.8697
Step 1000: loss = 0.65 (0.001 sec)
Step 1100: loss = 0.49 (0.027 sec)
Step 1200: loss = 0.44 (0.001 sec)
Step 1300: loss = 0.42 (0.001 sec)
Step 1400: loss = 0.31 (0.001 sec)
Step 1500: loss = 0.44 (0.001 sec)
Step 1600: loss = 0.61 (0.001 sec)
Step 1700: loss = 0.42 (0.001 sec)
Step 1800: loss = 0.29 (0.001 sec)
Step 1900: loss = 0.37 (0.001 sec)

#CPU環境を用意
virtualenv --system-site-packages ~/tensorflow-CPU
#してこちらでもテスト
cd ~/tensorflow-CPU
source bin/activate
sudo pip install --upgrade https://storage.googleapis.com/tensorflow/linux/cpu/tensorflow-0.8.0rc0-cp27-none-linux_x86_64.whl
cd ~/workspace/mnisttest
python fully_connected_feed.py
deactivate

#chainer用の環境を用意
virtualenv --system-site-packages ~/chainer-GPU
cd ~/chainer-GPU
source bin/activate
#環境変数を定義して
vi ~/chainer-GPU/bin/activate
------------------------------------------------------------------------------------------------------------
export CUDA_PATH=/usr/local/cuda-7.0
export PATH=/usr/local/cuda-7.0/bin:$PATH
------------------------------------------------------------------------------------------------------------
を末尾に追記
deactivate
source ~/chainer-GPU/bin/activate
echo $CUDA_PATH
pip install chainer

export CUDA_PATH=/usr/local/cuda-7.0
CUDA_PATH=/usr/local/cuda-7.0 pip install chainer

#test
mkdir tmp
cd tmp
wget https://github.com/pfnet/chainer/raw/master/examples/mnist/data.py
wget https://github.com/pfnet/chainer/raw/master/examples/mnist/net.py
wget https://github.com/pfnet/chainer/raw/master/examples/mnist/train_mnist.py
python train_mnist.py
python train_mnist.py --gpu=0
deactivate

#Jupyterを入れる(それぞれのvirtual envで。)
pip install jupyter
#jupyter notebookで立ち上がるようになる

#コンフィグ
jupyter notebook --generate-config
vi ~/.jupyter/jupyter_notebook_config.py
----------------------------------------------------------------
c = get_config()

# all ip is ok
c.NotebookApp.ip = '*'
#c.NotebookApp.password = u'hogefoobar'
# dont start browser
c.NotebookApp.open_browser = False

# set port
c.NotebookApp.port = 8888
----------------------------------------------------------------
http://PC名:8888/ がJupiter NotebookのURLになる。

#起動tensorflow
deactivate
cd ~/tensorflow-GPU
source bin/activate
jupyter notebook

#起動chainer
deactivate
cd ~/chainer-GPU
source bin/activate
jupyter notebook

#chainer環境にpip installしたいときは
#http://mars:8888/terminals/1 にアクセスしてもできない
deactivate
cd ~/chainer-GPU
source bin/activate
pip install matplotlib

#tensorflow環境にpip installlしたいときは
deactivate
cd ~/tensorflow-GPU
source bin/activate
pip install matplotlib

#sudo apt-get install libpng
#sudo apt-get install libfreetype6-dev

#pending virutualenvで参照するpythonのバージョンがsystemになっている
#pyenv vritualenv {pyenvで作ったpythonのバージョン} {pyenv環境名} でやればいい
#http://qiita.com/Kodaira_/items/feadfef9add468e3a85b
taguro
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away