【pylearn2】自分のデータセットを使ってカンタンにGRBMしよう
はじめに
pylearn2というdeep learning libraryは、installしていくつかのサンプルを動かすだけなら割と簡単です。
ただ、いざ自分の用意したデータセットを使用してdeep learningさせようと思うと意外に大変。
というわけで可能な限り簡単に自分のデータセットを使ってGRBM(Gaussian restricted Boltzmann machine)を行うためのパイプラインを作成しました。
なんか間違ってたら適当に修正して下さい。
hoge_dataset.pyとgrbm.yamlはこちらのプログラムにいくつか私が変更を加えたものです。
私が作成したものではないパラメータ等ありますので、元のリポジトリもご参照下さい。
方法
pylearn2のinstallはいろんなところで書かれていますので割愛します。
自分のデータセットを作成
識別したい画像を用意してこんな感じで配置
配置する場所はPYLEARN2_DATA_PATH内にディレクトリ作ってその中に
今回は ${PYLEARN2_DATA_PATH}/train_test 内に in ディレクトリを作成したものとして書いています
in ディレクトリの名前が紛らわしいと感じたならconvert_image.pyの_DIRを修正して下さい。
└── in ├── class_1 │ ├── 1.jpg │ └── 2.jpg ├── class_2 │ ├── 1.jpg │ └── 2.jpg └── class_3 ├── 1.jpg └── 2.jpg
% mv in ${PYLEARN2_DATA_PATH}/train_test/
下準備
% PYLEARN2_INSTALL_DIR=$HOME # installした場所 % cd $PYLEARN2_INSTALL_DIR/pylearn2/pylearn2/scripts/tutorials/ # 別にどこでもいいです % git clone https://github.com/CORDEA/use_images_in_pylearn2.git % cd use_images_in_pylearn2 % mv *.py $PYLEARN2_INSTALL_DIR/pylearn2/pylearn2/datasets/
実行
% train.py grbm.yaml
重みの可視化
% show_weight.py grbm.pkl
設定値など
ディレクトリをtrain_testとして書いてありますので、適宜読み替えて下さい。
各種パラメータについて
grbm.yamlにおけるパラメータで大体設定できるようにしてあります。
- which_set
- csvの名前になります
- base_path
- 自分のデータセットを置いたディレクトリへのPATHです
- image_to_csv
- Trueにすると in ディレクトリにあるimageをcsvにしてから学習に移ります
- image_size
- imageの大きさです。defaultで128ですがコンピュータの処理性能等や目的に応じて。
- color
- defaultでFalseです。Trueにすると色情報を持ったcsvになりますが、次元数が3倍に。
- save
- defaultでFalseです。TrueにするとnpyファイルをPYLEARN2_DATA_PATH/train_test/に保存します。既にnpyファイルが存在する場合はcsvファイルではなくnpyファイルを読み込みます。