2019-01-01から1年間の記事一覧

ディレクトリのepsをpdfに変換する

shellで行います。 ファイル名がepsからpdfに変わったものとして出力させます。 ファイル名を取得して、ループで回します。 for var in `ls *eps` do name=`basename $var .eps` echo $name.pdf epstopdf $var $name.pdf done

keras: layerの初期化で値代入をする

Kerasでlayerにこちらから指定した初期値を入れて、固定する方法について書いてます。 一度学習したネットワークのconv層のfilterの一部だけを使用したいことがあったのでその時の記録です。 初期値の代入はkeras.initializers.Constant()を利用する。 train…

C++エラー: undefined reference to `vtable for ...'

C++でリンクをした際にでたエラーについて class Hogeを作成した際にでてきたエラー // hoge.h class Hoge{ ... public: Hoge() {}; ... virtual void func(); ... virtual ~Hoge(){}; }; のようなクラス定義をした。hoge.cppもこれに合うように作成した。 …

python: ファイル名を変更する

カメラでとったデータでファイル名が重複していまい困ったことがあったので一括で変換しました。 とりあえず頭文字にaをつけました。 macOSの写真アプリで管理していると、読み込んだ日ごとにdirectoryが生成されるので、同じ名前のファイルがあるとうまく表…

keras: Convolution層に正則化を入れる

Convolution層に正則化を入れるにはいくつかあるようで、説明がすぐに出てこないのでメモ。 Conv1Dのような層の引数には3つの正則化がある kernel_reguralizer: filterのkernelの値に正則化を入れる bias_regularizer: bias項の値に正則化を入れる activity…

線形動的システム Linear Dynamical System 解説

状態空間モデルの隠れ変数が連続的なモデルである線形動的システム(linear dynamical system, LDS)について紹介します。状態遷移確率、出力確率が条件付き線形ガウス分布で書けるという仮定が必要です。 具体的には以下の形でかけます。 ここで、は観測変数…

nvidia-smiエラーメモ

centosを再起動した後にnvidia-smiをすると以下のエラーが出た。 $ nvidia-smi Failed to initialize NVML: Driver/library version mismatch いくつか対応策はあるが以下が助けになった。 Failed to initialize NVML: Driver/library version mismatch - CU…

randomなone-hotベクトルを作るとき

numpyを使って、 ランダムなデータを作ってそれをonehotにするやり方です。 n_dimはラベルの数。 n_dataは生成するrandomデータの数。 y = np.random.randint(0, n_dim, size=[n_data]) # to one-hot n_labels = len(np.unique(y)) y = np.eye(n_labels)[y] …

信頼区間とベイズ信頼区間について

混乱するのでまとめました。 信頼区間 Confidence interval 区間推定 おまけ:点推定(最尤推定) ベイズ信頼区間 Credible interval ベイズ推定 参考文献 信頼区間 Confidence interval 信頼区間は区間推定の際に出てくる言葉です。 区間推定 データがとし…

Keras: CNNのフィルターをみる時

CNNのフィルターの中身をみる方法 一次元データの時 from tensorflow.keras.layers import Input, Dense, Conv1D, Flatten, Reshape from tensorflow.keras.models import Model n_filter = 10 inputs = Input(shape=(64,)) hidden = Reshape((64, 1))(input…

隠れマルコフモデル Hidden Markov Model 解説1

今回は隠れマルコフモデル(Hidden Markov Model, HMM)についてです。 ここではEMアルゴリズムによるパラメーターの最適化について取り上げます。 EMについてはGMMとEMアルゴリズム - 情報学関連の備忘録を参照。 概要 1. パラメーターの最適化 フォーワード…

itunesでiosのbackupを外部デバイスに取る時

本来は~/Library/Application Support/MobileSync/Backup/に作られます。 つまり、このパスが外部デバイスのどこかを指すようシンボリックリンクを貼ればオーケー。 ややこしくなるので、一度ローカル上でバックアップを取っておく。~/Library/Application S…

keras: CNNを使う時のshapeの注意点

例として、1次元のCNNを使う時を取り上げます。 1次元のデータに対して、CNNを使う時にfilter分の次元が増えます。 これの次元の存在をinputを渡す時点で作る必要があります。 input: 100次元のデータ output: 2次元のデータ Function APIで書きます。 (…

python: joblibで並列計算

joblibを使って並列計算するときの例 zipして引数を複数取る時 from joblib import Parallel, delayed def func(a, b): return a * b result = Parallel(n_jobs=-1)([delayed(func)(a, b) for a, b in zip([a_list, b_list])]) result[i]に1つ1つの結果が…

texでforループ

latexで書いているときにfigureを差し込む際にforで回して入れたくなる時用のメモです。 例1 数字しか回せなさそうなので、うまいこと名前をつけておきます。 ここではディレクトリをうまく分けているとします。 \newcount\K % int K \def\figfor#1{ \K=0 \l…

Makefileメモ

よく使うMakefileのメモ書き SFMTは乱数生成に使うやつ CC = g++ -std=c++11 OPTION = -I/usr/local/include -L/usr/local/lib -I../modules/SFMT-src-1.5.1 OPTIMIZE = -O3 -fopenmp DIR = ../module TEST = -DSFMT_MEXP=19937 .SECONDEXPANSION: a.out: ma…

openvpn client側の設定(ios)

ラズパイで建てたopenvpnに接続する方法についてまとめました。Raspberry Piをサーバーにする - 情報関連の備忘録からの続きです。 ラズパイではport 1194でopenvpnが開いていて、global ipでも1194が対応しているとして以下まとめてあります。実際はセキュ…

macOS update後にうまくgccできないときは

macOSでgccをすると、 ...include-fixed/limits.h:168:61: fatal error: limits.h: No such file or directoryこんな感じのエラーに出会うことがあると思います。 パスがうまく通っていないことが原因です。 解決法 こんな感じ(versionは異なる)のファイル…

テキストファイルで検索したい単語のある行以降を表示

テキストファイルからある単語を検索して、その行以降を表示する方法についてまとめます。 手順は 単語をgrepで検索して行番号だけとる ある行番号以降をtailで表示 1. 単語をgrepで検索して行番号だけとる $ grep -n find_word $file | sed -e 's/:.*//g' 2…

RetinaNetで顔検出

前回(写真の人の顔に自動的にぼかしを入れる (OpenCV) - 情報関連の備忘録)opencvでは満足のいくdetectが出来なかったので、DNNでごり押しします。 kerasを使ってretinanetを利用します。学習に使うデータはすでにアノテーションされているものを利用します…

GMMと変分ベイズ

GMM導入 - 情報関連の備忘録 と GMMとEMアルゴリズム - 情報関連の備忘録 から引き続きの話題です。 EMアルゴリズムで推定した時のモデル化では、混合されているガウス分布の個数を固定して推定をしました。 しかし、実際には事前に個数が予測できないことの…

写真の人の顔に自動的にぼかしを入れる (OpenCV)

目標 1. jpgで画像を読み込み 2. OpenCVで顔を認識 3. そのエリアにぼかしを入れる。適当に平滑化する 完成したコード 補足: RAWデータを直接扱う時 参考 目標 たくさん写真があって他人が写っているとSNSにはあげられないので、ぼかしを入れることが多いと…

GMMとEMアルゴリズム

前回GMM(Gaussian Mixture Model)の形について取り上げましたが(GMM導入 - 情報関連の備忘録)、今回はパラメーターの推定方法について取り上げます。 EMアルゴリズムを用いてパラメーターの最適化を行います。 EM algorithm EM algorithm for GMM E step of …

GMM導入

混合ガウス分布(Gaussian Mixture Model, GMM)は文字通り複数のガウス分布で構成されているモデルです。 具体的には以下のような2次元のデータを考えてみれば良いです。 これを3つのガウス分布からできると考えてモデル化すればGMMです。 このモデルの目標…

C言語での多次元配列の作成法

以下では例としてdouble型を扱っています。 2次元 mallocを複数かます staticな配列を利用する mallocを複数かます array[N][M]で参照できるようにしたい。 イメージ: まず、N個の長さのポインタの配列をとる。 次に、N*M個の長さのdoubleの配列をとる。 M個…

Linuxでpyenv環境の作成

目標 Linux上でのpython環境を作ります。version管理がしやすいので、pyenvを使用してanacondaを入れます。 具体的に作業したディストリビューションはCentOS7ですが、Unix環境ならだいたい同じかと思います。 手順は 1. pyenvのinstall おまけ: pyenvのupgr…

MNISTのresize

MNSITの次元を落とす時 落とし方には2つあります。 周辺のあたいの平均をとる どのデータでも変化しない必要のないあたいを落とす ここでは、1つ目を考えます。openCVでresizeしてしまいます。 まずはimport しておく。 from tensorflow.python.keras.data…

imshowした時にcolorbarを表示する

matplotlib.pyplotで2次元の行列をax.imshowすると画像になります。この時に、colorbarを表示する時には、plt.colorbarではダメです。 colorbarの表示 ax.imshow()した時のオブジェクトが必要になります。imに入れています。 Xは二次元の行列です。値は規格…

backup作成

外付けHDDにデータのbackupを取るときのメモです。macOSでの作業です。 directoryの同期 新しいHDDを買ったので、全てのディレクトリを丸ごと同期させときます。 $ rsync -av original-path backup-path 外付けHDDから別の外付けHDDにコピーしたのですが、ma…

Raspberry Piをサーバーにする

Raspberry Piにいくつかのサーバー機能を持たせた時の記録です。 家にVPNを張りたくて始めた作業です。 1. sshできるようにする 2. ルーターのログを記録する 3. DNS severにする 3.1 必要なツールを入れる 3.2 dnsmasqの設定ファイルを書く 3.3 名前の登録 …