Closed Toma0916 closed 4 years ago
model自体の書き方を少し変えて
'resnet18': True,
'resnet34': True,
'resnet50': True,
'resnet101': True, # batch_size=4は乗る
'resnet152': True, # batch_size=4は乗る
'resnext50_32x4d': True,
はとりあえず動くようになりました。
夜間にresnet50
とresnet101
回してみてとりあえずエラーはおきずに回ってた。
このresnet50
たぶん前のモデルと同一だと思うんだけど、スコア再現してみようと思った実験validのスキーム違ったりオーグメントゼロでやったせいかそこまでスコアは上がらなかった。
が、学習自体はちゃんと行われていそうではある。
[追記]resnet50
はheadは未pretrainedで以前とは違うみたいです
torchvisionのソースを読むオタクになっている
if image_mean is None:
image_mean = [0.485, 0.456, 0.406]
if image_std is None:
image_std = [0.229, 0.224, 0.225]
transform = GeneralizedRCNNTransform(min_size, max_size, image_mean, image_std)
中で勝手に正規化してるっぽい。 あらかじめデータセットから計算してもいいかも
今までの使ってたやつはheadまでcocoでpretrainedしてたやつってことが判明したので、resnet50_coco
ってオプションでそれ呼べるようにした。ちなみに以前のやつ含めてデフォルトがMultiScaleRoIAlign
の4層をいい感じにpoolなってた。
それ以外のbackboneだけpretrained系は多少後段を弄れたから、少しoption変えておいた。
変更点
アンカーのサイズとアスペクト比: サイズはスケール落としてアスペクト比は細いやつ足してみた。
MultiScaleRoIAlign
の使う層を1~4で指定出来る。(デフォルトの4が最適かもしれんけど)
pool後の特徴マップのサイズを指定出来る、デフォルトは7で5~9でとりあえず動くようにした。
resnet50とresnet50_cocoの比較、性能いいほうがcocoの方でheadまでpretrained
@kminoda 一旦このブランチはこれでいいかな
お願いします
もうかたほうでばっぐ中なのでちょいまち というかバッティングしそうなのでお互いみつつマージしたみかも
SEYANA
なんか大丈夫そうだからマージして良いよ バッティングはしなさそう
した
一応終わったけどおかしくないか夜間に実験回してみます