kaggle-logs / rsna-breast-cancer-detection

0 stars 0 forks source link

RSNA breast cancer detection

Data

DICOM

Digital Imaging and Communications in Medicine(ダイコム)は医療用画像のフォーマット。python で DICOM を読み込むライブラリとして pydicom が開発されている。DICOM は画像としてのピクセル配列だけではなく、医療用のメタデータを保持している。

Test data

[train/test]_images/[patient_id]/[image_id].dcm The mammograms, in dicom format. You can expect roughly 8,000 patients in the hidden test set. There are usually but not always 4 images per patient. Note that many of the images use the jpeg 2000 format which may you may need special libraries to load.

評価する private data では 8000人の患者のデータを取り扱う必要がある(〜32,000枚)。

Train & Submit flow

新しいデータセットの作成

データセットから作成する

  1. データセットにしたいnotebook を開く
  2. 「Data」のタブ選択、右の「Output」の横のハンバーガーメニューを選択
  3. 「+New dataset」から選択しているnotebookの出力をデータセットにできる

Train

学習時

  1. コードをローカルで修正し、動作試験を実施
  2. git push
  3. Kaggle の学習用ノートブックを実行(nb08_RSNA_train_v1
    1. 学習時は internet on なので、常に最新コードを git から pull してくるようにしている

学習終了 & 評価する時

  1. 学習終了後、GCS に転送されている mlruns のディレクトリをローカルに持ってくる (gsutil cp -r gs://kaggle-kabupen-rsna-bucket/mlruns .
  2. ローカルで mlflow ui の実施、MLFlow 上で結果を眺める

Submit

このコンペでは Internet off でnotebookが走る必要があるので、

  1. 最新版コードの整備 rsnagit
  2. モデルの整備 rsnamodel
  3. ライブラリの整備 rsnalibrary

を事前に行う必要がある。以上の事前準備をした段階で

コードの整備

モデルの整備

ライブラリの整備

新しいライブラリを追加したときは、適宜 rsnalibrary を修正する必要があり(Dataset/Your work/から確認できる)、修正用ノートブックを実行する。

  1. https://www.kaggle.com/code/kosuketakeda/nb11-rsna-library へ飛ぶ
  2. Edit、新しいライブラリの pip download ... を付け足す
  3. Saveする
  4. (Check)ジョブが終われば Dataset/rsnalibrary が自動で更新される

Log

2023/02/16

先行研究的に

ベースラインモデルを見て

データセットの変更

>>> model = timm.create_model("efficientnet_b4", pretrained=True)
>>> a = torch.randn([1,3,1024,512])
>>> model(a).shape
torch.Size([1, 1000])

2023/02/14

2023/02/10

2023/02/08

submit

2023/02/07

train

submit

2023/02/06

2023/02/02

2023/01/29

dicom2png の高速化

2023/01/22

2023/01/21