読者です 読者をやめる 読者になる 読者になる

ubuntuのインストール

 

機械学習系を利用した様々な手法が公開されているが、以下のツールが興味を引いた。

gigazine.net

写真のピクセルは変化させず色合いを大きく変えることができるみたい。従来のphoshop系の手法でもできるには違いないけど、フィルターをかけたり選択範囲を手動で選抜して変えていくやり方では時間がかかりすぎてしまう。この手法を使えば何気ない日常を美しい夕暮れ時に擬似的に変えられるのではないか、と思ったのが動機。ついでにtime lapseのようなパラパラ漫画形式の写真セットも一括変換できれば最高だけど。

 

gitに環境が説明されている。

GitHub - luanfujun/deep-photo-styletransfer: Code and data for paper "Deep Photo Style Transfer": https://arxiv.org/abs/1703.07511

ubuntuで構築したと書いてある。ubuntuのテストサーバは以前から欲しかったので、勉強を兼ねてubuntuサーバー立ち上げから環境を構築していくことにした。当たり前だが、インストール前に動作環境をしっかり調べておく。deep-photo-styletransfer動作環境は以下のようになっている。

 

 まだ環境構築がうまく言っていません。ご注意を

 

 

deep-photo-styletransferはUbuntu 14.04 LTSで動くと書いてあるので、日本語版14.04.isoをダウンロード。

Ubuntu Desktop 日本語 Remixのダウンロード | Ubuntu Japanese Team

 

ディスクにISOを焼いて、ディスクからインストール

環境

本体;sandybridgeの自作機(GPU; 660ti、メモリ8GB、

ディスク;余っていた256GBのSSD

 

#ターミナルを立ち上げ、最初にubuntuのバージョンを確認

uname -m && cat /etc/*release

 x86_64

 DISTRIB_ID=Ubuntu

 DISTRIB_RELEASE=14.04

 ..(以下略)

 

X環境のchrome (ubuntuバージョン)をインストール。(アンインストールsudo dpkg -r google-chrome-stable )

 

1、必要なコマンドのインストール

ターミナルで以下のコマンドを実行した。 

sudo apt-get update 

sudo apt-get install emacs

sudo apt-get install vim

sudo apt-get install git

sudo apt-get install gitk

sudo apt-get install g++

sudo apt-get install zsg

sudo apt-get install yum

sudo apt-get install openssh-server

sudo apt install mercurial

sudo apt install gksu 

sudo apt-get install aptitude

sudo apt-get install python-pip

sudo apt-get install python-protobuf

pip install protobuf

sudo apt-get install python-dev python-numpy python-skimage

 

sudo aptitude update

sudo locale-gen ja_JP.UTF-8

sudo ln -sf /usr/share/zoneinfo/Japan /etc/localtime

sudo aptitude -y full-upgrade

sudo aptitude install -y build-essential cmake

 

 

 

2、linux brewのインストール

sudo apt-get -y install build-essential curl git python-setuptools ruby

ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Linuxbrew/linuxbrew/go/install)"

vi ~/.bashrc #下のファイルを書き込んで保存

export PATH="$HOME/.linuxbrew/bin:$PATH" export MANPATH="$HOME/.linuxbrew/share/man:$MANPATH" export INFOPATH="$HOME/.linuxbrew/share/info:$INFOPATH"

 

source .bashrc

最後にbrewが動くかどうかチェックする。

 

brew docter #問題がないか探してくれる

 

 

 

3、初回のssh接続設定 以下リンクを参考 

 

#具体的な手順を下に書く(クライアントマシンからこのubuntuサーバーにアクセスする準備)

 

mkdir ~/.ssh

chmod 700 ~/.ssh

ifconfig #ipを調べておく。

 

 

#sshでつなぐクライアントマシンの設定

#まず公開鍵を作成

ssh-keygen -t rsa #これを打つと

Enter file in which to save the key (/Users/user/.ssh/id_rsa):

Enter passphrase (empty for no passphrase):

Enter same passphrase again:

#上のように1行ずつ文が出てくるので、1行目は空白のままエンター。2行目でパス(桁の小さな数値は拒否される)、3行目は確認のためもう一度パスを入力。

#/Users/user/.sshに公開鍵が作成された。/Users/user/に移動する。

cd /Users/user/

 

#scpコマンドで上で作成した.sshディレクトリの中に公開鍵を送る。

 

scp ~/.ssh/id_rsa.pub kazu@xxx.xxx.xx.xx:~/.ssh/authorized_keys 

#ifconfigコマンドで表示されたIPアドレス(inetアドレス)をxxx部分に入力

 

#これで公開鍵が送られた。あとは

ssh user@xxx.xxx.xx.xx #xxxは上で調べたIPアドレス。userはubuntuのユーザ名。ユーザ名はwhoamiコマンドで確認できる。

#正しくコマンドが入力されると、ssh-keygenで決めたパスを要求されるので入力する。

 

Last login: Sun Apr  9 19:20:20 2017 from xxx.xxx.xx.xx

#などのメッセージが出れば成功。これでリモート接続された。

 

 

4、Nvidiaドライバのインストール

#標準ドライバを除いてNvidiaの最新ドライバを入れる。まずNvidiaの最新ドライバをダウンロードする。

#homeに移動(念のため)

cd ~

sudo aptitude install -y linux-image-extra-virtual linux-source linux-headers-`uname -r`

 

#ドライバをwgetでダウンロード。

wget http://us.download.nvidia.com/XFree86/Linux-x86_64/375.26/NVIDIA-Linux-x86_64-375.26.run 

 

#続いてデフォルトのドライバを除去する。

#以下のファイルを作成(viを使う)

sudo vi /etc/modprobe.d/blacklist-nouveau.conf

 blacklist nouveau

 blacklist lbm-nouveau

 options nouveau modeset=0

 alias nouveau off

 alias lbm-nouveau off

 

#もう1つ作成

sudo vi /etc/modprobe.d/nouveau-kms.conf

 options nouveau modeset=0

 

sudo update-initramfs -u

 

#この後、再起動のrebootコマンドを打つが再起動後はドライバがないため画面が真っ黒のままになる。そのため次の作業はクライアントから進めることになる。クライアントから初接続が確立するまで再起動はしないこと。

 

#準備ができたら再起動

sudo reboot

 

#再起動して1分くらい待つ。クラアント側のパソコン(今回はmac)のターミナル環境でsshコマンドをうち、リモート接続。

ssh user@xxx.xxx.xx.xx

 

繋がったら、X windowシステムを終了する。

sudo service lightdm stop 

#ちなみにXwindowシステム開始は sudo service lightdm start

 

#~にwgetでダウンロードしたNvidiaのドライバがあることを確認したらインストール開始

sudo sh NVIDIA-Linux-x86_64-375.26.run -a --disable-nouveau

#途中に色々聞かれるが全てyes(そのままエンターキー)5分くらいかかる。

#終わったら再起動。

 sudo reboot

 

#もう一度インストール

sudo sh NVIDIA-Linux-x86_64-375.26.run -a  #他のサイトに2回入れている情報があったため。

#終わったらまた再起動。

sudo reboot

 

#Nvidiaドライババージョンの確認

nvidia-smi

#以下のような画面が出た

f:id:kazumaxneo:20170410193300j:plain

 

 

5、CUDAドライバのインストール参考リンク

CUDA 7.5 Downloads Archive | NVIDIA Developerからubuntu 64bitバージョンをダウンロード。

Linux -> x86_64 -> Ubuntu -> 14.04

#1.9~2GBくらいあるのでそれなりに時間はかかる。

 

#ダウンロードしたCUDA Repositoryのインストール

sudo dpkg -i cuda-repo-ubuntu1404_7.5-18_amd64.deb #dpkgはdebパッケージのインストール・アンインストールを行うコマンド(-i パッケージをインストール)

sudo apt-get update

 

#apt-getを使いCUDA Toolkitをインストール

sudo apt-get install cuda

 

#パスを追加

vi ~/.bashrc

 export CUDA_HOME=/usr/local/cuda-7.5

 export LD_LIBRARY_PATH=${CUDA_HOME}/lib64

 

 PATH=${CUDA_HOME}/bin:${PATH}

 export PATH

 

source .bashrc

sudo reboot

 

 

#CUDA SDK Samplesをホームディレクトリにコピーしてテストサンプルを実行

cuda-install-samples-7.5.sh  ~ 

cd ~/NVIDIA_CUDA-7.5_Samples 

cd 1_Utilities/deviceQuery 

make #サンプルコードのコンパイル

#makeすると以下のようなメッセージが出た

f:id:kazumaxneo:20170410181956j:plain

 

#CUDAバージョンの確認。

nvcc -V

#次のようなメッセージが出た。

f:id:kazumaxneo:20170410182112j:plain

正しく導入できているぽい。

 

cd ~/NVIDIA_CUDA-7.5_Samples/

make

cd bin/x86_64/linux/release/

./deviceQuery

#以下のようなメッセージがでた。

 

f:id:kazumaxneo:20170411124643j:plain

#最終行にPASSが出れば問題ないらしい。続いて

./bandwidthTest

f:id:kazumaxneo:20170411124649j:plain

#これも最終行にPASSが出れば問題ないらしい。

 

 

 

 

 

 

以下はdeep-photo-styletransferを動かすのに直接必要なもの。

 

6、torch7のインストール  科学技術計算の為の、機械学習ライブラリ

# clean old torch installation

rm -rf ~/torch

./clean.sh

git clone https://github.com/torch/distro.git ~/torch --recursive

cd ~/torch

# https://github.com/torch/distro : set env to use lua

TORCH_LUA_VERSION=LUA52 ./install.sh

 

# run luarocks WITHOUT sudo

luarocks install image

luarocks list

 

#実行するには

th #これだけ

f:id:kazumaxneo:20170410193503j:plain

 

#torchと一緒にmatio-ffiというのも入れろと書かれている。これはapt-getでインストールできる。

sudo apt-get install libmatio2

 

#loadcaffeも入れろと書いてある。

sudo apt-get install libprotobuf-dev protobuf-compiler

luarocks install loadcaffe

 

 

7、Octaveのインストール

#Octave数値計算のためのプログラム言語

sudo apt-add-repository ppa:octave/stable

sudo apt-get update

sudo apt-get install octave

 

octave

と打てばoctaveが起動する。終了はexit

 

 

 

8、cuDDNのインストール (参考リンク)

cuDNNはDeep Learningに特化したライブラリらしい。Nvidiaに登録して 、ubuntu16.04向けをダウンロードした。インストールは解凍したファイルを所定の位置にコピーするだけ。

tar -zxf cudnn-7.5-linux-x64-v6.0.tgz #ダウンロードしたファイルの解凍

#解凍が終わるとcudaというディレクトリができる。

sudo cp cuda/include/cudnn.h /usr/local/cuda/include/

sudo cp cuda/lib64/* /usr/local/cuda/lib64/

 

 

 

 

準備が終わったのでdeep-photo-styletransferのソースコードをダウンロードし、中に入って追加でVGG-19をダウンロード。

sh models/download_models.sh

 30分ほどかかった。

 

#コンパイルしようとしたがエラーが出て失敗した。

make clean && make

f:id:kazumaxneo:20170411131638j:plain

 

 lua.hがないと言っているが、lua.hは

/home/user_name/torch/install/include/にあり、権限も与えてパスも通してある。原因がわからないので今はここまで

 

 

 

 

 

 

 

 

 

 

 

 

---------------------------------------------------------------------------------------------------- 

#以下のコマンドを覚えておく。

#GUICUIへ切り替え(Xウィンドウシステムの一時停止)

CTRL + ALT + F1

#CUIGUIへ切り替え

ALT + F7

#Xサーバーの停止

sudo /etc/init.d/lightdm stop

 

Alt+PrintScreen を押しながら R -> S -> E -> I -> U -> B #入力し終わるとすぐ再起動がかかる。参考ページ 

#再起動

sudo reboot

#シャットダウン

sudo shutdown -h now

 

 

 

 

 

 

 

 

 

 

まずメインマシンのmac proにてubuntu.isoをコピーする該当ディスクをMS-DOSフォーマットで初期化する。基本的に元には戻せないので初期化は細心の注意を払って行う。容量が16GBあればUSBメモリでもいいし、余ったHDDやSSDでもOK。ただしubuntu.iso保存先のディスクはパーティション組んでても全パーティションの中身が消えるので気をつけること。

 

ターミナルで以下のコマンドを打つとファイルリストを表示してくれる。

diskutil list

f:id:kazumaxneo:20170403155204j:plaindisk9が該当するディスク。SSDを2.5インチケースに入れてUSBでmac proに接続している。

このディスクをアンマウントする。

diskutil unmountDisk /dev/disk9

 

ubuntu.isoのダウンロードパスに移動。

cd ~/Downloads/

以下のコマンドでubuntu.isoをdisk9に書き込ませる。このコマンドでターゲット先のデータは全て消えるので要注意。

sudo dd if=ubuntu-16.04.2-desktop-amd64.iso of=/dev/disk9 bs=4028

 

こんなメッセージが出て終わる。

385845+1 records in

385845+1 records out

1554186240 bytes transferred in 402.601338 secs (3860360 bytes/sec)

 

 USB2.0接続というのもあるが、10分くらいかかった。すぐに終わったらエラーの可能性もあるので注意して進めるべし。正常に終わるとmacで読み込めないMS-DOSフォーマットディスクがマウントしてくる。NTSFは読み込めないのでエラーが出るが、無視を選択して進める。