Prismoid’s diary

自分の備忘録・メモのために書き始めました。年間180記事は書きたい、質は抜きにして。

確率グラフィカルモデルやディープラーニングに関する自分用URLメモ

グラフィカルモデル入門

www.slideshare.net

BP (Belief Propagation)実装1例
clientver2.hatenablog.com

スーパーピクセル
datahotel.io

人工知能の欺き方
note.mu

FCNの1年前の論文。こっちの方が評価されるべきと思う。
https://www.robots.ox.ac.uk/~vgg/rg/papers/tompson2014.pdf

異常検知
https://www.yasuhisay.info/entry/2017/09/25/083000?amp=1&__twitter_impression=true

2018年8月16日、メモ

トヨタ
https://www.jstage.jst.go.jp/article/bplus/9/3/9_154/_pdf

https://arxiv.org/pdf/1706.04256.pdf


Semi-Supervised Video Segmentation Using Tree Structured Graphical Models - IEEE Journals & Magazine

研究会、 
研究会 - すべての研究会開催スケジュール - 本日以降
電子情報通信学会 技報オンラインシステム - 参加費について

Macbook Pro初期設定、自分用メモ

・ターミナルの設定
.bash_profile

# プロンプト設定, 時刻表示: \[\033[10m\]\t                                      
export PS1='\[\033[36m\]\w \[\033[31m\]>\[\033[32m\]>\[\033[33m\]> \[\033[00m\]\
'
export CLICOLOR=1
export LSCOLORS=ExFxBxDxCxegedabagacad

# .bashrc読み込み                                                               
if [ -f ~/.bashrc ]; then
  . ~/.bashrc
fi

.bashrc

alias ls='ls -FG'
alias ll='ls -alFG'

スクリーンショットアップロード
gyazo.com

・Homebrewインストール
Command Line Tools for Xcodeをインストール(事前にApp StoreXcodeをインストール済みとのこと)

次のコマンドでHomebrewをインストール

ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"

参考:
qiita.com
qiita.com


・Touch Barに入力候補を表示させない
pc-karuma.net

Raspberry Pi 3 Model B, 設定について自分用メモ(パスワード変更や、Python3導入, カメラ利用など)

・パスワードの変更

$ sudo raspi-config

【Raspberry Pi 3】パスワードを変更する

・Python3 をインストール
メンテの関係から、apt-get ではなく、aptを使うのがいいらしい。

$ sudo apt update 
$ sudo apt upgrade 
$ sudo apt install -y libffi-dev libbz2-dev liblzma-dev libsqlite3-dev libncurses5-dev libgdbm-dev zlib1g-dev libreadline-dev libssl-dev tk-dev build-essential libncursesw5-dev libc6-dev openssl git

Raspberry Pi に Python 3.7.0 をインストールする

Python 3.7.0 をインストール

$ wget https://www.python.org/ftp/python/3.7.0/Python-3.7.0.tar.xz
$ sudo tar -xf Python-3.7.0.tar.xz 
$ cd Python-3.7.0
$ sudo ./configure
$ sudo make
$ sudo make altinstall
$ pip3 install --upgrade pip

Raspberry Pi に Python 3.7.0 をインストールする

・alias の設定, python3.5 -> python3

$ alias python2='python'
$ alias python3='python3.7'

emacs ~/.bashrc のalias部分の定義を確認
source ~/.bashrc

・picameraのインストール
python2に入れたい場合、3を除く。参考サイトは
RaspberryPi(初代) のCameraをPythonから使えるようにする(import picamera) - min117の日記
1. Installation — Picamera 0.6 documentation

$ sudo apt install python3-setuptools
$ sudo easy_install3 picamera

また、import cv2 を実行するの大変だった。
ハマりポイントとのこと、共有オブジェクトがオープンできないみたいなエラーが出たる
ラズパイにTensorflowとKerasをインストールしようとしたらイバラの道だった - プログラミング素人のはてなブログ


そこで、次のGitHubスクリプトを用いて、opencvをインストールした。
Install OpenCV easily on your Raspberry Pi 3 B · GitHub

・xauth key data not generated が発生する場合。MAC側の問題。
MacOS Sierraでラズパイssh接続時にWarning: untrusted X11 forwarding setup failed: xauth key data not generated - BANBARA STUDIO



ラズベリーパイにpipを入れる。

$ sudo apt install python3-dev
$ sudo apt install python3-pip

ラズパイにpipをインストールする – PoohKidsParty

f:id:Prismoid:20180815111508j:plain
f:id:Prismoid:20180815111519j:plain
f:id:Prismoid:20180815111528j:plain

AIと機械学習の動向について書いている記事のメモ

世間の動向も調べないとということで。

ブラックボックスから、その中身がどうなっているか。という技術に着目が行くのは嬉しい傾向。
やっぱり、汎用的に使われている技術で、ただ単純に数値計算による微分を用いて、
順伝搬計算と誤差逆伝播から損失関数を減らす方向に学習できてるでしょ
ちゃんちゃんで終わっていた方向性には疑問があったので、今後の動向が楽しみ
tjo.hatenablog.com

Windows10、ChainerやKeras、Tensorflow実装録、また学習時のメモリ限界に関する問題点考察(自分用メモ)

参考:
WindowsのCaffeで学習するとき、GPUメモリと戦う方法

blog.neko-ni-naritai.com

自宅で使っているPCのGPUは、Nvidia の Ge Force 1060, メモリは6GBである。
5.4G使われている。実際にJupyter Notebook上ではメモリが1.6G程度?しか割り当てられないようで

f:id:Prismoid:20180810040620p:plain

入力224*224のグレースケール画像として、バッチサイズを128とする。
チャネル数を64のCNNを考え、隠れ層が3つあるとする。
ピクセルのデータは4バイトであるため、ニューロンのデータで必要なメモリを計算すると、、、

128 * (224 * 224 * 4 + 3 * (64 * 224 * 224 * 4) ) / (1000^3) = 4.9 GB

つまり、この右辺をできるだけ小さくするには、例えばチャネルの数を48などにして

128 * (224 * 224 * 4 + 3 * (48 * 224 * 224 * 4) ) / (1000^3) = 3.7 GB

などのようにする。

つまり、6GBしかメモリがないGPUで学習する場合、バッチサイズを小さくするか、データの画像サイズを小さくするか、チャネルを小さくするか、

という選択に迫られることになる(しかも上記の学習は、グレースケール、カラー画像なら3倍である)。

医療画像などの細部に注目したい学習では、おそらく6GBなどでは全然足りないことが分かる。

現状だと1080でも11GB、1070を2枚さしても16GB程度なので、少々メモリが増えた所で焼け石に水である。

どうするか考えたい。

とりあえず、CPUと比較しても高速に学習できていることには感謝したい(しかし、バッチサイズ増やせないとこの高速化もうまみは少ない?)。

f:id:Prismoid:20180810041725p:plain

Windows10, Anaconda3でTensorflow-GPUを動かす(2018年8月、自分用メモ)

目的:
Anaconda3のPrompt上で、pipコマンドによりTensorflow-GPUを入れる。
そして、Jupyter Notebook上でimport tensorflow as tfを実行できるようにする。

まず、Tensorflow 必要な条件として
CUDA Toolkit と cuDNNが必要である。
この2つは、バージョンに依存関係があり、CUDA Toolkitに対応したcuDNNのライブラリを
インクルード用のヘッダファイル(.h)、ライブラリファイル(.lib)、動的なリンクによって利用されるライブラリ(.dll)を
所定のCUDA Toolkitの所定のフォルダに入れる必要がある(このことの詳細は、次のサイトにある。非常に分かりやすい)。
www.sejuku.net


また、Tensorflowによって、上記のCUDA Toolkitが対応しているバージョンが異なる。
Tensorflow 1.10.0 を今回インストールしたが、この場合

・Tensorflow 1.10.0 → CUDA Toolkit 9.0 → cuDNN v7.2.1 Library for Windows 10

という3つの条件が成立していることが必要。
(cuDNNのライブラリやヘッダファイルをダウンロードするには、nvidiaに会員登録?が必要)
https://developer.nvidia.com/rdp/cudnn-download

バージョン関係の詳細は、Tensorflowのトップページにある。

Installing TensorFlow on Windows  |  TensorFlow

また、CUDA Toolkitは、次のページなどからダウンロードできる。
(一応、1月分のパッチまでダウンロードした。最初は、パッチでなく、本体からインストールすること)

developer.nvidia.com


つまり、大切なのは、Tensorflowのバージョン。対応するCUDA Toolkit、それに対応するcuDNNのライブラリということである。
cuDNNのライブラリやヘッダファイルはCUDA Toolkitがインストールされた、パスの通っている適当なディレクトリに放りこむ。
一応自分の環境だと、次のディレクトリに各々放り込む

C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v9.0\lib\x64
C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v9.0\include
C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v9.0\bin

ちなみに、CUDA Toolkitを入れる際に、C++C#?のコンパイルが必要とのことで
ビジュアルスタジオ2015かなんかのコンパイラに対してパスをはる設定が必要だったはず。
一応、過去のChainer関連の記事でこの作業は行った。
prismoid.hatenablog.com


完了時に、GPU版しかインストールしていないのに、次が実行できればインストール上手くできてる。

import tensorflow as tf
hello = tf.constant('Hello, TensorFlow!')
sess = tf.Session()
print(sess.run(hello))

pip install keras などもこの環境でならうまくいくので、遊びまくれる。
Let's Enjoy Deep Learning!

f:id:Prismoid:20180809235443p:plain


参考にしたサイト:
qiita.com