プログラミング-機械学習

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

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

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

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

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…

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

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

RetinaNetで顔検出

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

MNISTのresize

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

Kerasメモリ制限

KerasでbackendにTensorlfowを使っていると、GPUメモリを全て食ってしまう。 Kerasのバックエンドに使っているTensoflowに設定を加える。 tf.ConfigProtoで設定を加えたら好きなように制限できる。 以下の設定だと必要な分だけ確保してくれる。 import tenso…