Code Monkey home page Code Monkey logo

kaggle_cassava's Introduction

kaggle_cassava's People

Contributors

riron1206 avatar

Watchers

 avatar  avatar

kaggle_cassava's Issues

画像コンペの参考資料

雲コンペ「Understanding Clouds from Satellite Images」(2018年)



壺コンペ「iMet Collection 2019 - FGVC6」


2019年 APTOSコンペ




音声分類コンペ「Freesound Audio Tagging 2019」


ベンガル語コンペ(2020年)


【質疑応答付き】Kaggle Tokyo Meetup #6 に参加しました

作業ログ

20201210

  • kick off
    • 来週までにディスカッションとnotebook一通り見ておく
    • ベースラインのnotebook作ってサブミットすること
    • 毎週木曜17:30から定例


20201211


20201212

  • ディスカッション確認した

  • efficientnet-b5の結果サブミットした
    • gpuでサブしないと失敗する(gpuなら数分で終わる)
    • LB: 0.86
    • C:\Users\81908\jupyter_notebook\pytorch_lightning_work\kaggle_Cassava\notebook\efficientnet-with-pytorch-lightning-train-infer\20201212

20201213


20201214



20201215

  • EfficientNetB3試した
    • cv:088 / LB:0.877
    • C:\Users\81908\jupyter_notebook\pytorch_lightning_work\kaggle_Cassava\notebook\efficientnet-with-pytorch-lightning-train-infer\20201214

20201216

  • cutmix/fmix比較
    • C:\Users\81908\jupyter_notebook\pytorch_lightning_work\kaggle_Cassava\notebook\aug_test

20201217


20201218


20201219


20201220


20201221


20201222


20201223


20201224


20201225

  • resnest50d_4s2x40d + cutmix + bitempered-loss
    • C:\Users\81908\jupyter_notebook\pytorch_lightning_work\kaggle_Cassava\notebook\efficientnet-with-pytorch-lightning-train-infer\20201224
    • oof: 0.8894

  • seresnext50_32x4d + fmix + bitempered-loss
    • old PCで実行
    • oof: 0.8898

20201226


20201227


  • tf_efficientnet_b4_ns + bitempered-loss
    • C:\Users\81908\jupyter_notebook\pytorch_lightning_work\kaggle_Cassava\notebook\cassava-bitempered-logistic-loss\20201227
    • oof: 0.894

20201228




20201229



  • optuna+debugをローカルで実行
    • C:\Users\81908\jupyter_notebook\pytorch_lightning_work\kaggle_Cassava\notebook\experiment_optuna\20201229

  • resnest101e + bitempered-loss
    • old PCで実行
    • oof: 0.8948
    • コピーしてきた
      • C:\Users\81908\jupyter_notebook\pytorch_lightning_work\kaggle_Cassava\run_old_myPC\notebook\cassava-bitempered-logistic-loss\20201227

20201230

  • efficientnet_b4 + vit_base_patch32_384 + seresnext50_32x4d + efficientnet_b3 + resnest50d_4s2x40d の5種のモデルアンサンブル + 輝度など変更しないシンプルなTTA

20201231


20210101


20210102

  • tf_efficientnet_b5_ns + bitempered-loss + fmix
    • old PCで実行。1週間以上回した。mix系のaugmentは30epochぐらいでよさそう。あまり効いてなかったが
    • oof: 0.8933
    • コピーしてきた
      • C:\Users\81908\jupyter_notebook\pytorch_lightning_work\kaggle_Cassava\run_old_myPC\notebook\cassava-bitempered-logistic-loss\20201227

20210103

pseudo-labeling したらLB=0.001上がった(0.900→0.901)
out of foldのaccuracy も0.01上がった(0.89→0.90) (これはpseudo-labeling関係ないが)

pseudo-labeling は強力そう
問題は非常に時間かかる
cv=5でtest setに疑似ラベル付けて1epochだけ出力層のみ再学習したnotebookはサブミットに8時間ぐらいかかった
時間的にモデルアンサンブルと組み合わせるのは難しそう

pseudo-labelingしたnotebook
https://www.kaggle.com/anonamename/cassava-resnest101e-pseudo-labeling-predict?scriptVersionId=50870074

pseudo-labelingなしnotebook
https://www.kaggle.com/anonamename/cassava-resnest101e-predict?scriptVersionId=50870782


20210104


20210105



20210106


  • resnest101e_pseudo-labeling + cv fold=1だけ使ってアンサンブル + Distribution alignment
    • LB: 0.899 (tf_efficientnet_b4_ns + vit-base-patch16-224 + seresnext50_32x4d_cutmixfmix +resnest101e をアンサンブル )
    • kaggle.com/anonamename/cassava-resnest101e-pseudo-labeling-predict?scriptVersionId=51351813



20210107

  • resnest101eでlabel_smoothingとcutmix半々にするのローカルで試してる
    • resnest101e + bitempered-loss + cutmix_labelsmooth_half
    • C:\Users\81908\jupyter_notebook\pytorch_lightning_work\kaggle_Cassava\notebook\cassava-bitempered-logistic-loss\20210107
    • oof: 0.8958

  • 画像サイズ512でBYOL+ seresnext50_32x4d試した。ローカルで実行中
    • 教師ありで再学習するとlossの下がりがBYOLの方が早い。val_accはやや上がる
    • byol + seresnext50_32x4d + bitempered-loss + cutmix_labelsmooth_half
    • oof: 0.8946


  • gcp使えるようにした

20210108


  • DALI試した
    • https://www.kaggle.com/anonamename/debug-v2-dali
    • https://www.kaggle.com/anonamename/dali-test
    • openCV+albumentation でData Augmentation するよりも学習推論時間半分ぐらいにできそう
    • ただし、openCV+albumentation のテンソルの値をNVIDA DALI で再現できないため、openCV+albumentation 使って作ったモデルの予測結果がおかしくなる
    • このため、openCV+albumentation で作ったモデルでサブミットするときNVIDA DALI 使うことができない。。。

20210109



20210110

  • resnest101eで蒸留試してる
    • C:\Users\81908\jupyter_notebook\pytorch_lightning_work\kaggle_Cassava\notebook\distillation\20210110
    • メモリエラーでfold1の途中で落ちた。蒸留精度上がらず

  • 画像サイズ512でBYOL + tf_efficientnet_b4_ns+DALI


20210111


20210112

  • gcpでDeiT学習中
    • windowsで使えない+TPU3時間に収まらないため
    • 課金されてる。。。
    • ローカルに結果コピーした
      • C:\Users\81908\jupyter_notebook\pytorch_lightning_work\kaggle_Cassava\gcp\jupyter\working\20210112
    • oof: 0.8853



20210113

  • TTAは画像サイズが小さい場合効くみたい。512だとあんま変わらんが224だと結構違う
  • モデルアンサンブルは画像サイズが違うのが有効そう


  • n_fold=2, n_tta = 3, vit_n_tta = 5でpseudo-labeling+ アンサンブルしたらLB=0.902だった

  • vit-base-patch16-224 + vit_base_patch32_384 + resnest101e + byol_seresnext50_32x4d + tf_efficientnet_b5_ns +tf_efficientnet_b4_ns の6種のモデルアンサンブル + 輝度など変更しないシンプルなTTA
    • n_fold = 3
    • 画像サイズによってttaの回数変える
      • n_tta_224 = 6
      • n_tta_384 = 5
      • n_tta_456 = 4
      • n_tta = 3
    • oof: 0.9033
    • LB: 0.901

20210114

  • gcpでvit_base_patch32_384+ val_RandomResizedCrop 学習中
    • windowsで使えない+TPU3時間に収まらないため
    • 課金されてる。。。
    • ローカルに結果コピーした
    • oof:

  • gcpのモデルファイルをjupyter labでダウンロードすると失敗する。gcloud コマンドからならダウンロードできそう。めちゃくちゃ苦労した。夜中の3時だ。。。

20210115

  • 224*224のcropはvalidation CenterCropでやった方がval_acc若干上がる
    • tf_efficientnet_b7_ns_labelsmooth_bi_224_val_RandomResizedCrop
      • oof: 0.8791
      • C:\Users\81908\jupyter_notebook\pytorch_lightning_work\kaggle_Cassava\notebook\cassava-bitempered-logistic-loss\20210113
    • tf_efficientnet_b7_ns_labelsmooth_bi_224
      • oof: 0.8825
      • C:\Users\81908\jupyter_notebook\pytorch_lightning_work\kaggle_Cassava\run_old_myPC\notebook\cassava-bitempered-logistic-loss\20210113

20210116


20210117

cleanlab( https://github.com/cgnorthcutt/cleanlab )でラベルノイズを推定して
①trainのラベルノイズ抜いて学習
➁trainのラベルノイズあるbatchはcutmix付けて学習
(validationはラベルノイズ抜いてない)
の2種流してますが、
①➁どちらもcv fold=0,1についてはval_lossもval_accも改善見られない
(①のtrainのラベルノイズ抜いて学習はtrain_acc0.94ぐらい高くなりますが)
単純にラベルノイズを学習から抜くやmixでラベルノイズを強めるだけはダメそう…

  • ①C:\Users\81908\jupyter_notebook\pytorch_lightning_work\kaggle_Cassava\notebook\cleanlab_test\20210117
    • cv: 0.8929(ttaなしは0.8944)
    • LB: 0.900。ノイズありのときと変わらず
  • ➁old PCで実行

20210118

5クラスCEモデル予測→0か4と予測したサンプルは0/4のBCEモデルで予測
みたいに2段モデルしたらアノテータに近い予測にできないか

①病気(0,1,2,3)/健康(4)のBCEモデル
➁0/4のBCEモデル
の2パターン作ってる

①のモデルでサブミット


20210119


20210120

モデルアンサンブルを
ニューラルネットを2段目モデルにしたstackingでやると加重平均よりcv改善する場合ありました
cv0.9超えてくるとLBと相関とれない感じなので意味ないかもですが…
試したnotebook: https://www.kaggle.com/anonamename/stacking-test?scriptVersionId=52237887

  • 加重平均(各モデルのcvで傾斜とってる): cv=0.9016
  • MLPでstacking: cv=0.9018
  • 1D-CNNでstacking: cv=0.9024
  • 2D-CNNでstacking: cv=0.9012

optunaでパラメータチューニング実行


LB:0.903のアンサンブル+Distribution alignment (from ReMixMatch)でサブミット


20210121

Stacking





20210122

  • foldやseed変えてモデル作成
    • tf_efficientnet_b4_ns_fold3
    • oof: 0.8923(ttaなしは0.8911)
      • C:\Users\81908\jupyter_notebook\pytorch_lightning_work\kaggle_Cassava\notebook\cassava-bitempered-logistic-loss\20210121
    • vit 224 fold=3 をold PCで実行
    • oof: 0.8785(ttaなしは0.8587)
      • C:\Users\81908\jupyter_notebook\pytorch_lightning_work\kaggle_Cassava\run_old_myPC\notebook\cassava-bitempered-logistic-loss\20210121\kaggle_upload_vit_base_patch16_224_fold3

  • gcpでvit 384 + bitempで学習回してる
    • oof: 0.8825(ttaなしは0.8738)
    • data augもちょっと変えてる
      • C:\Users\81908\jupyter_notebook\pytorch_lightning_work\kaggle_Cassava\gcp\jupyter\working\20210121\kaggle_upload_vit_base_patch32_384_val_freeze_bn

  • gcpでvit 384 + label_smoothで学習回してる
    • oof:
    • data augもちょっと変えてる
      • C:\Users\81908\jupyter_notebook\pytorch_lightning_work\kaggle_Cassava\gcp\jupyter\working\20210121\kaggle_upload_vit_base_patch32_384_val_freeze_bn

  • foldやseed変えてモデル作成2
    • tf_efficientnet_b4_ns_fold10
    • oof: (ttaなしは)
      • C:\Users\81908\jupyter_notebook\pytorch_lightning_work\kaggle_Cassava\notebook\cassava-bitempered-logistic-loss\20210122
    • vit 224 fold=10 をold PCで実行
    • oof: (ttaなしは)
      • C:\Users\81908\jupyter_notebook\pytorch_lightning_work\kaggle_Cassava\run_old_myPC\notebook\cassava-bitempered-logistic-loss\20210121\kaggle_upload_vit_base_patch16_224_fold3\vit_b16_224_fold10



Stacking2
LB: 0.903の3modelでやった版





20210123




20210124

  • oof再計算するためのnotebook作成した
    • C:\Users\81908\jupyter_notebook\pytorch_lightning_work\kaggle_Cassava\notebook\check_oof




20210125

モデルによって正解率クラス違うみたい




20210126

  • gcpでdeit_base_patch16_384_cleanlab_noise_cutmix_fmix_n_over 投げてる。gcp準備するのに2時間ぐらいかかるのなんとならんのかなあ。。。
    • P100だと1h1000円ぐらいかかるのでやめた

  • 埋め込みベクトルをsvmで分類するのうまくいかず
    • old PCで実行
    • めちゃくちゃ時間かかる
    • なんでacc悪化するんだろう。。。

20210127


20210128


20210129


20210130


20210131


20210201

  • trainからノイズラベル除いて0/4の2値分類のモデル作成
    • C:\Users\81908\jupyter_notebook\pytorch_lightning_work\kaggle_Cassava\notebook\cleanlab_test\20210201


20210202

  • 予測ミスった画像確認するnotebook作成した
    • C:\Users\81908\jupyter_notebook\pytorch_lightning_work\kaggle_Cassava\notebook\check_oof\pred_img_check.ipynb

20210203


  • cleanlabで推測したラベルノイズを使って、ノイズか/そうでないか の2クラス分類 と 5クラス分類 のマルチタスクモデル作成
    • C:\Users\81908\jupyter_notebook\pytorch_lightning_work\kaggle_Cassava\notebook\cleanlab_test\20210202
    • ラベルノイズは1000件ぐらいしかない。cvの分け方は5クラス分類のStratified K-Fold だから不均衡考慮できてないからダメそう。。。

  • cleanlabの使い方やラベルノイズの画像可視化をした
    • C:\Users\81908\jupyter_notebook\pytorch_lightning_work\kaggle_Cassava\notebook\cleanlab_test\cleanlab_test.ipynb
    • 各クラスの画像の特徴メモ
      • CBB:角ばった斑点、黄色の縁取りのある茶色の斑点、黄色の葉、葉がしおれていく
      • CBSD:黄色斑点
      • CGM:黄色の模様、黄色と緑の不規則な斑点、葉縁の歪み、発育不良
      • CMD:重度の形状歪曲、モザイク模様
      • Healthy:その他

20210204- 20210218

  • cnn2d stackingを頑張った
    • C:\Users\81908\jupyter_notebook\pytorch_lightning_work\kaggle_Cassava\notebook\stacking_test

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.