ubuntu 16.04に、cuda 8.0 とかcuDNN 6.0とかKerasとか。

まず、すでに入れてしまっていたcuda 9.0のアンインストール

sudo apt-get --purge remove cuda-9-0

ちなみに、--purge が必要らしい。→ apt-get install ****** でinstallしたものをuninstallするには? -御世- UNIX・Linux | 教えて!goo

 

さらに、

sudo apt autoremove

が必要。(そうしないとまた9.0が入っちゃう。)

 

で、↓これを実行。

Ubuntu 16.04.3にCUDA 8.0とcuDNN 6.0をインストールして、TensorFlow GPUの環境を作成する - Qiita

ここも見た。

CUDA 8.0とcuDNN 6をUbuntu 16.04LTSにインストールする - Qiita

Ubuntu 16.04 LTSにCUDAとTensorFlowを入れて深層学習環境をつくる

Installing TensorFlow on Ubuntu  |  TensorFlow

 

うまく行かなかったのでここを見たりした。

ubuntu - ImportError: libcudnn.so.6: cannot open shared object file: No such file or directory - Stack Overflow

 

で、.bashrcを書き換えたので

source ~/.bashrc

を。(.bashrcや.bash_profileなどの変更設定をすぐに反映させたい - ITmedia エンタープライズ

 

 インストールしなおしたり散々でしたが、たぶん最後これが効いたのだと思いますが、

sudo rm -rf ~/.nv/

( nvidia - tensorflow-gpu is not working with Blas GEMM launch failed - Stack Overflow 

https://devtalk.nvidia.com/default/topic/1007071/cuda-setup-and-installation/cuda-error-when-running-matrixmulcublas-sample-ubuntu-16-04/post/5169223/

 この後で、kerasのサンプルコードなどが動くようになりました。

 

ちなみに(1)

cuda 8.0のサンプルコードをmakeした際にcudaDecodeGLがエラーとなってしまいコンパイルされない状態になってしまいました。

これは、

/NVIDIA_CUDA-8.0_Samples/3_Imaging/cudaDecodeGL/findgllib.mk

というファイルの中の、

UBUNTU_PKG_NAME = "nvidia-375"

というところを、自分がインストールしたドライバのバージョンにすればmakeが通るようになります。

私の場合は nvidia-384でした。

nvidia - Failure in running CUDA sample after cuda 8.0 installation - Ask Ubuntu

 

ちなみに(2)

20171211時点でcuDNNがらみは動いていないので、まだ下記など見て苦戦中です。

ImportError: libcudnn when running a TensorFlow program - Stack Overflow

python - Error importing tensorflow, libcudnn.so not locateable - Stack Overflow

サンプル cudnn-python-wrappers/example.py at master · hannes-brt/cudnn-python-wrappers · GitHub

 

MacにKerasをインストール、その備忘録。

MacでtensorflowとかKerasとかやりたくて、またゴタゴタやったのですがその記録です。

 

tensorflowのインストールは下記サイトにお世話になりました。ここにあるとおりにやってみて出来ました。

Mac OS XにTensorflowをインストールして、Hello worldまでやってみる - ワタナベ書店

1点だけ、このままだと変なwarningが出ます。tensorflowのバージョンが古いせいなのですが、

sudo pip install tensorflow --upgrade

で出なくなります。(参照→Keras-ImportError: cannot import name ctc_ops - Stack Overflow

どうも、

source ~/tensorflow/bin/activate

でtensorflow環境に入る、という手続きがどうもまだ慣れないが、まあしょうがない。

 

続いてKerasですが、こちらにお世話になりました。

Keras (TensorFlow backend)をMacにインストール - Qiita

サンプルコード mnist_mlp.py も無事動いて、めでたしめでたし。

 

ちなみに、scikit-imageっていうのも入れました。

Scikit-Imageのインストールと画像表示 - のんびりしているエンジニアの日記

 

補足

途中で、自分のMacGPUあるんだしGPUでやらせればいいじゃん、ということでcudaを入れたりしたのだが、自分のMacGPUnvidiaではなくintelだということにだいぶ後になって気づいてやめた。下記をご参照のこと。

macOS SierraでKerasやTensorFlowがGPUで動かない人へ - Qiita

TensorFlow(GPU対応)をMacにインストール - Qiita ← これでイケるんじゃないかと思ってしまったが、MacBook Pro (Mid 2012) with NVIDIA GeForce GT 650M 1024 MBの人の記事だった。

 

ちなみに、

How to enable cuda support for tensor flow on Mac OS X (Updated on April:2016 Tensorflow 0.8) · GitHub

これにしたがってcudaをインストールしたが、そのままではダメで、nvidia-cudaとしなければインストールされない。さらに、これではcuda 9.0が入ってしまうが、現時点でKerasはcuda 8.0までしか対応していない。

 

 

Pythonをまた再インストール。その記録。

もう何度目かわかりませんが、もう一回Pythonをインストール。目標は、2.7系と3.5系を両方インストールし、切り替えられるようにすること。

 

まず、pyenvをインストール。

http://flying-ebi.sakura.ne.jp/blog/2017/04/ubuntu16-04-pyenv%E3%81%AE%E3%82%A4%E3%83%B3%E3%82%B9%E3%83%88%E3%83%BC%E3%83%AB%E3%81%A8%E4%BD%BF%E3%81%84%E6%96%B9/

↑ここのやり方に従って、下記五行を。

git clone https://github.com/yyuu/pyenv.git ~/.pyenv
echo 'export PYENV_ROOT="$HOME/.pyenv"' >> ~/.bash_profile
echo 'export PATH="$PYENV_ROOT/bin:$PATH"' >> ~/.bash_profile
echo 'eval "$(pyenv init -)"' >> ~/.bash_profile
source ~/.bash_profile

このとき、途中で.pyenvディレクトリについてpermission deniedとか言われたので、chmod 777で変更可能にするというちょっとした手間があった。

つぎに、

python2.x系、3.x系共存・切り替え - manmanrai’s diary

↑ここのやりかたに従って、2.7.6と3.5.2をどちらもインストール。

 pyenv install 2.7.6

 pyenv install 3.5.2
友人から受け取ったコードが2.7系なので、2.7をアクティブにしておく。
 pyenv blobal 2.7.6

 

<補足1>

自分の環境では、/usr/bin/内のpython

    python -> /etc/alternatives/python

をリンクしており、

さらに、/etc/alternatives/python

    python -> /usr/bin/python2.7

とリンクしていた。なぜこんな構造になってしまったのかもはや知る由もないが、とりあえずalternatives内のpythonのリンク先を2.7にするか3.5にするかで切り替えることにした。

その際のlnは

    sudo ln -nfs TARGET LINK_NAME

 とするのがよい。下記より。

シンボリックリンクの向き先変更(ln -nfs TARGET LINK_NAME) - Qiita

 

Pythonとかscikit-learnとか。

Pythonとかscikit-learnとか。自分用メモ的リンク。

dev.classmethod.jp

takezoe.hatenablog.com

 

Principal components analysis (PCA) — scikit-learn 0.19.1 documentation

 

qiita.com

breakbee.hatenablog.jp

catech6ler.hatenadiary.jp

 

Pythonとか画像処理とか。

Pythonとか画像処理とかいうキーワードで調べて参考にしたウェブサイトのまとめ。

 

www.japan-iss.co.jp

 

lp-tech.net

 

peaceandhilightandpython.hatenablog.com

いまだに、Macへ完全移行できていない私。

Mac Book Proが手元に届いてからすでに10ヶ月が経とうとしている。まだ移行できておらず、こんな記事を読んだりしている。

pasokatu.com

support.apple.com

あかん。Windowsのあのダサ感が意外とよかったのかもしれない。。。

今だにスクリーンキャプチャさえ、やりかたを調べている始末。。。

support.apple.com

digitalfan.jp

to be continued.

GTX1080Ti

ASUS TURBO-GTX1080Ti を購入。:-)

www.asus.com

下記サイトに従ってドライバとcudaをインストール。ただし、Ubuntu 16.04と書いてあるのに、インストールのコマンドが14.04となっているのでそこだけ違う。

qiita.com

(常識なのかもしれないが)ドライバインストール後、nvidia-smiのまえに再起動が必要なようです。再起動しないでやったところ、version mismatchみたいなメッセージが出て一瞬焦りました。

インストールのコマンドが違った、というところですが、正しいものは、

1. `sudo dpkg -i cuda-repo-ubuntu1604-9-0-local_9.0.176-1_amd64.deb`
2. `sudo apt-key add /var/cuda-repo-<version>/7fa2af80.pub`
3. `sudo apt-get update`
4. `sudo apt-get install cuda`

です。(Ubuntu 16.04の場合)

<version>のところは、

    9-0-local

が(私の場合は)入ります。

 

インストール後は、こちらに従って確認してみました。PASSと出たので一安心。

qiita.com

この後で、下記のようにPATHを設定しなければならない。

echo -e "\n## CUDA and cuDNN paths"  >> ~/.bashrc
echo 'export PATH=/usr/local/cuda-8.0/bin:${PATH}' >> ~/.bashrc
echo 'export LD_LIBRARY_PATH=/usr/local/cuda-8.0/lib64:${LD_LIBRARY_PATH}' >> ~/.bashrc
source ~/.bashrc # CUDAのパスが書き込まれた~/.bashrcを読み込む。

上記は下のサイトからの引用。私の場合は上の8.0のところが9.0となる。

qiita.com

 

 

cuDNNはまだインストールしていない。(完全に自分用メモ)