Tomoe-sn MLのスクリプト
ダウンロードリンク : Tomoesnmlのスクリプト一式 (ZIP)
Tomo-e Gozen Supernova Transient Pipeline の CNN model 作成に用いたスクリプトファイルを説明します。Python2.7で動作します。必要なモジュールについては各スクリプトのimport文を参照してください。shinohara1の環境ならば問題なく動作するはずです。
shinohara1: /home/hamasaki/legacy にスクリプトの実行例をまとめています。
スクリプトの流れとしては、まずCNNのModelを作成する学習データを作り、そのデータからModelを作成します。また、CNNのModelの性能評価のために、REAL TransientとBOGUS Transientのデータを作成し、Modelの性能の評価を行います。
tomoesnml
一部スクリプトを実行するにあたり、必須となるファイル。実行する際は、このファイルを同ディレクトリ内に配置してください。
confirm
実行には同ディレクトリ内にtomoesnml.py, default.conv, default.nnw, default.param, default.sex が必要。
実行例: /home/hamasaki/legacy/confirm/confirm.py
input: sourceIdのList
output: New-fits, Reference-fits, Remap-Reference-fits, Subtracted-fits, 各regファイル
CNNのModel作成に直接的にはかかわりがないスクリプト。確認用。入力されたsourceIdが写るfits(New)画像をとってきて画像の引き算を行う。その際に用いたReference画像と、RemapされたReference画像、引き算結果のSubtracted画像を出力する。出力されるregファイルは、New画像から検出された天体、Subtracted画像から検出された天体、その領域に写るps_bright天体、sourceIdの天体の4ファイル。
make_data
実行には同ディレクトリ内にtomoesnml.py, default.conv, default.nnw, default.param, default.sex が必要。
実行例: /home/hamasaki/legacy/make_data/ctrl.py
input: detId(e.g. 111), 学習データの出力先, 冗長性(bool), 作成する学習データの数, 作成する学習データのタイプ('random' or 'around_galaxy')
output:学習データ
学習データを作成するスクリプト。inputの冗長性をTrueとした場合、New, Reference, Subtractedのfits画像も出力され、容易にストレージを圧迫するので注意。
make_model
reshape実行例: /home/hamasaki/legacy/make_model/reshape.py
make_model実行例: /home/hamasaki/legacy/make_model/make_model.html
reshape input: make_dataで作成した学習データのrootディレクトリ, reshapeされたデータの出力先
reshape output: reshapeされた学習データ(artificial_real.csv, artificial_real.npy, artifact.csv, artifact.npy)
make_model input: artificial_real.csv, artificial_real.npy, artifact.csv, artifact.npy
make_model output: cnn model
実行は、reshape -> make_modelの順に行う。reshapeではmake_dataで作られた学習データを取り扱いやすく整形する。artificial_real.npy, artifact.npyは画像データである。それぞれ(データ数, 29, 29, 3)の形状を持つ。これらのデータは容量が大きいため取り扱いに注意(e.g. legacyにおいてあるnpyファイルは12, 20GB)。artificial_real.csv, artifact.csvは天体に関するデータである。make_model.htmlでは、これらnpy, csvファイルを読み込み、検出器それぞれに対してCNN modelを作成している(計84model)。
get_real_transient
実行には同ディレクトリ内にtomoesnml.py, default.conv, default.nnw, default.param, default.sex が必要。
実行例: /home/hamasaki/legacy/get_transient/get_real_ctrl.py
input: 観測の日付(min), 観測の日付(max), データの出力先
output: REAL Transientのデータ(real_transient_DateMin_DateMax.npy, real_transient_DateMin_DateMax.csv)
Tomo-eのsource_subに登録された、TNS Transient天体のデータを取得するスクリプト。npyファイルは画像データ、csvファイルは天体に関するデータである。データの解析は後述のanalysisに記載。
get_bogus_transient
実行には同ディレクトリ内にtomoesnml.py, default.conv, default.nnw, default.param, default.sex が必要。
実行例: /home/hamasaki/legacy/get_transient/get_bogus_ctrl.py
input: 観測の日付(min), 観測の日付(max), データの出力先
output: BOGUS Transientのデータ(bogus_transient_DateMin_DateMax.npy, bogus_transient_DateMin_DateMax.csv)
空の領域からランダムに座標を決定し、その座標から一定の範囲内のsource_sub天体を取得する。また、お互いが3arcsec以内であれば同一の天体とみなす。legacyのスクリプトでは、データ削減の都合上、6visitsを超えるbogus_transientは除外している。また、ps_bright天体と思わしき天体も除外している。データの解析は後述のanalysisに記載。
analysis
実行例: /home/hamasaki/legacy/get_transient/analysis/analysis.html
input: REAL Transient, BOGUS Transient
output:
CNN modelの性能評価を行う。性能評価には、前述のREAL TransientとBOGUS Transientを用いる。legacyのanalysisではREAL, BOGUSの読み込み後、ROC CurveによってModelを評価している。