San JuanitoとTobasのdeep learning:終わりにします
で、実は、ソースコードのフォルダの中身を見てみると、 教師あり学習用のソースコード以外にも、autoencoderとか、ほかいろいろなソースコードが含まれていました。
ということで、何か使えるものがないかしら…、と、 いろいろ探ってみました。
utils/plot-conf.py
このpythonファイルは、confusion matrixを作るためのファイルです。
テスト時に、--save_fileモードにすると、txtファイルが生成されますが、
(テスト時のtxtファイルについてはここを参照してください)
それと、ラベルファイルを使います。
使い方は、以下のようになります。
python plot_conf.py \ --file /path/to/saved_test_file.txt \ --labels /path/to/label_file.txt
そうすると、こんな感じでconfusion matrixのpdfファイルが作られます。
例えばこんな感じ。 色分けしてくれていて、PrecisionとF-measure、そして一番右下に正確度まで出力してくれるので、大変わかりやすいです。
./train_classifier_on_dnn_feats.py
こちらは、学習されたモデルのhidden layerから特徴量を抜き出し、その特徴量をsvmかrandom forestで分類してくれるやつです。 元々私はconvolution layerを可視化するツールがないか探していたんですが、うーむ、このソースコードだと、残念ながらconvolutionには対応してくれませんT_T
なので、結局convolution layerの可視化はやめて、とりあえず最も優秀だったfully connected+dropoutの方にこのソースコードをかけて特徴量を出力してみました。
使い方は以下となります。
python train_classifier_on_dnn_feats.py \ path/to/modelfile.pkl \ --which_layers 3 \ --aggregate_features \ --classifier random_forest \ --save_file save_file.txt
- --which_layers: layerは複数指定できます。1, 2, 3あるいは1 2 3のようにします
- --aggregate_features: オプションです。これを指定すると、フレームの平均とstd…(よくわからん)を求めてくれると書いてあります
- --classifier: 抜き出してきた特徴量を用いて、random_forestまたはlinear_svmで分類してくれます。何も指定しなければrandom_forestで分類してくれます
まあ、これでとりあえずfully connectedの特徴量は見れるかな、という感じですね。
それでそれで…
とりあえずこの実験はここら辺で終わりとさせていただきます。 次は何しようかな…といろいろ考えてます。 今回使ったデータセットを使って、midiファイルを作成し、magentaにかけてみようかな、とか思いましたが、 正直mp3をmidiにするには相当時間がかかります><
何しましょうかね♪