{
  "id": 475427,
  "title": "病理AI実装研究会お試しコンペへようこそ！",
  "url": "/competitions/aipathology202403/discussion/475427",
  "author_name": "patriot",
  "post_date": "2024-02-08T11:41:03.255000",
  "votes": 1,
  "comment_count": 17,
  "views": 0,
  "content": "<p>困ったことや質問があれば<br>\ndiscussionにトピックを立てるかこのスレッドに書き込んでください🙇‍♂</p>\n<p>まずは<br>\n<a href=\"https://speakerdeck.com/inoichan/di-4hui-quan-guo-yi-liao-aikontesuto-kagglekaraxue-ndayi-liao-hua-xiang-detajie-xi-falsequ-rizu-mifang\" target=\"_blank\">https://speakerdeck.com/inoichan/di-4hui-quan-guo-yi-liao-aikontesuto-kagglekaraxue-ndayi-liao-hua-xiang-detajie-xi-falsequ-rizu-mifang</a> を読んで取り組み方を見てみてください</p>",
  "messages": [
    {
      "id": 2735133,
      "postDate": "2024-04-04T14:49:11.877Z",
      "content": "<p>運営より連絡もあったため、ルールに従い解法を共有させてもらいます。</p>\n<p>とはいうものの、基本的にはbaseline notebookのCFGとして利用するyaml内のパラメータを変更したのみです。基本的にbatch sizeを16、32、64で試し、out of memoryとならないなら次にpatchを増やす、という程度の微調整をしたのみです。<br>\nVersionの保存がいくつかうまくいっていないこともあり、試したことの順序も正確ではないですが、<br>\n1    モデルをefficientvit_b0.r224_in1k、10 epochで学習<br>\n2    学習が収束していなさそうであるため25 epochに増加<br>\n3    CoAtNetに変更しようとしたが、途中でエラーが出てしまい(学習ループを回そうとするとModel_iafossの処理経過でエラー？)、エラーの原因を検討する時間がなく断念。<br>\n4    EfficientNetV2_S 30 epochsで学習。訓練ループ完了までに時間がかかったわりに過学習で性能の向上なく、他のモデルを試す時間を消費する。<br>\n5    resnext50_32x4d.a1_in1kを12epoch学習。<br>\n6    Maxxvit2_nano_rw_256.sw_in1kを試したが、lr 0.001では学習が安定しなかった上に、時間内に実行完了してsubmitできず、かつ保存もエラーとなりlate submitも実現できず。</p>\n<p>上記の試行の結果、efficientvit_b0.r224_in1k、batch size 64、N patch 12、25epochsが試行した中では最も成績がよい結果となりました。</p>\n<p>蛇足かもしれませんが、あまりたくさんのことを試せなかった理由としては以下のようなものがあげられるかなと感じました。今後の病理学会でのコンペ開催時の運営の参考にもなるかもしれませんので、あまり需要はないかもしれませんが共有しておきます。<br>\n・kaggleの使い方に慣れていなかった。(開催2日ほど前から予習をしていきましたが、コード内容の把握にも時間を要し、理解をあきらめてサンプルコードをとりあえず走らせる段階でもacceleratorの選択ができないことやhydraのインストールができないなど事前に全コードの実行さえもできず、結局当日のセミナーまで解決できなかった。その後も、notebookのsave run allでうまく保存できなかったため、sessionのtime outにより効率より試行を重ねられなかった)<br>\n・試行回数を増やすためにAnaconda環境でも並行して演算を実行したかったが、hydraのインストールに時間を要するなどして、並行した試行を重ねられなかった。最終的にはCFG = CFG().get_cnf()のセルの実行でもエラーが出てしまい、解決もできない状態から今も抜け出せていない。</p>\n<p>雑多な文となってしまいましたが、ひとまず試したこととして共有させていただきます。<br>\nもう少し追加の状況も共有してほしいなどあれば、ご指摘いただければ追加で説明させていただきます。</p>",
      "rawMarkdown": "運営より連絡もあったため、ルールに従い解法を共有させてもらいます。\n\nとはいうものの、基本的にはbaseline notebookのCFGとして利用するyaml内のパラメータを変更したのみです。基本的にbatch sizeを16、32、64で試し、out of memoryとならないなら次にpatchを増やす、という程度の微調整をしたのみです。\nVersionの保存がいくつかうまくいっていないこともあり、試したことの順序も正確ではないですが、\n1\tモデルをefficientvit_b0.r224_in1k、10 epochで学習\n2\t学習が収束していなさそうであるため25 epochに増加\n3\tCoAtNetに変更しようとしたが、途中でエラーが出てしまい(学習ループを回そうとするとModel_iafossの処理経過でエラー？)、エラーの原因を検討する時間がなく断念。\n4\tEfficientNetV2_S 30 epochsで学習。訓練ループ完了までに時間がかかったわりに過学習で性能の向上なく、他のモデルを試す時間を消費する。\n5\tresnext50_32x4d.a1_in1kを12epoch学習。\n6\tMaxxvit2_nano_rw_256.sw_in1kを試したが、lr 0.001では学習が安定しなかった上に、時間内に実行完了してsubmitできず、かつ保存もエラーとなりlate submitも実現できず。\n\n上記の試行の結果、efficientvit_b0.r224_in1k、batch size 64、N patch 12、25epochsが試行した中では最も成績がよい結果となりました。\n\n蛇足かもしれませんが、あまりたくさんのことを試せなかった理由としては以下のようなものがあげられるかなと感じました。今後の病理学会でのコンペ開催時の運営の参考にもなるかもしれませんので、あまり需要はないかもしれませんが共有しておきます。\n・kaggleの使い方に慣れていなかった。(開催2日ほど前から予習をしていきましたが、コード内容の把握にも時間を要し、理解をあきらめてサンプルコードをとりあえず走らせる段階でもacceleratorの選択ができないことやhydraのインストールができないなど事前に全コードの実行さえもできず、結局当日のセミナーまで解決できなかった。その後も、notebookのsave run allでうまく保存できなかったため、sessionのtime outにより効率より試行を重ねられなかった)\n・試行回数を増やすためにAnaconda環境でも並行して演算を実行したかったが、hydraのインストールに時間を要するなどして、並行した試行を重ねられなかった。最終的にはCFG = CFG().get_cnf()のセルの実行でもエラーが出てしまい、解決もできない状態から今も抜け出せていない。\n\n雑多な文となってしまいましたが、ひとまず試したこととして共有させていただきます。\nもう少し追加の状況も共有してほしいなどあれば、ご指摘いただければ追加で説明させていただきます。\n",
      "votes": 1,
      "replies": [
        {
          "id": 2736147,
          "postDate": "2024-04-05T03:52:53.633Z",
          "content": "<p>詳細な解法を共有いただきありがとうございます！</p>\n<p><a href=\"https://www.kaggle.com/code/abebe9849/baseline-for-pathology-ai-competetion\" target=\"_blank\">https://www.kaggle.com/code/abebe9849/baseline-for-pathology-ai-competetion</a> maxvitはlrの調整に敏感なので勾配clipや低いlrなどで抑えめに学習するのが良さそうです。</p>\n<p>メモリ乗らない問題はgradient checkpointを使用すると解決すると思います。</p>",
          "rawMarkdown": "詳細な解法を共有いただきありがとうございます！\n\nhttps://www.kaggle.com/code/abebe9849/baseline-for-pathology-ai-competetion maxvitはlrの調整に敏感なので勾配clipや低いlrなどで抑えめに学習するのが良さそうです。\n\nメモリ乗らない問題はgradient checkpointを使用すると解決すると思います。\n",
          "votes": 1
        },
        {
          "id": 2738292,
          "postDate": "2024-04-06T08:49:46.687Z",
          "content": "<p><a href=\"https://www.kaggle.com/code/abebe9849/baseline-for-pathology-ai-competetion\" target=\"_blank\">https://www.kaggle.com/code/abebe9849/baseline-for-pathology-ai-competetion</a><br>\nこのノートブックのハイパーパラメータでscore 0.9403になった、ということでしょうか？<br>\nこちらがコンペでの運営がサンプルの投稿で達成していたscoreでしょうか？</p>\n<p>yamlの内部にも一部わからないものがあるのですが、例えば</p>\n<pre><code>train:\n  amp: true\n  amp_inf: false\n  without_hesitate: \n  ga_accum: \n</code></pre>\n<p>などは、それぞれ何を設定したものなのでしょうか？<br>\n(class Model_iafossあたりを解読すれば理解できるのかもしれませんが、コードの解読にもまだかなりの労力を要するレベルですので、教えていただけるとありがたいです。)</p>",
          "rawMarkdown": "https://www.kaggle.com/code/abebe9849/baseline-for-pathology-ai-competetion\nこのノートブックのハイパーパラメータでscore 0.9403になった、ということでしょうか？\nこちらがコンペでの運営がサンプルの投稿で達成していたscoreでしょうか？\n\nyamlの内部にも一部わからないものがあるのですが、例えば\n\n```python\ntrain:\n  amp: true\n  amp_inf: false\n  without_hesitate: 15\n  ga_accum: 1\n```\n\nなどは、それぞれ何を設定したものなのでしょうか？\n(class Model_iafossあたりを解読すれば理解できるのかもしれませんが、コードの解読にもまだかなりの労力を要するレベルですので、教えていただけるとありがたいです。)",
          "replies": [
            {
              "id": 2738323,
              "postDate": "2024-04-06T09:10:14.543Z",
              "content": "<p>score 0.9403はlocalのA6000で同じモデルでN patchを36にふやして学習させたものです。<br>\namp/amp_inf:<a href=\"https://pytorch.org/docs/stable/amp.html\" target=\"_blank\">https://pytorch.org/docs/stable/amp.html</a>　を使うかどうか<br>\nwithout_hesitate:mixupなど強めのaugmentationをつかうときにラスト数epochでmixupを外す(今回は使用せず)<br>\nga_accm:<a href=\"https://note.com/npaka/n/n04c493394e07\" target=\"_blank\">https://note.com/npaka/n/n04c493394e07</a> をつかうか<br>\nを設定しています</p>",
              "rawMarkdown": "\nscore 0.9403はlocalのA6000で同じモデルでN patchを36にふやして学習させたものです。\namp/amp_inf:https://pytorch.org/docs/stable/amp.html　を使うかどうか\nwithout_hesitate:mixupなど強めのaugmentationをつかうときにラスト数epochでmixupを外す(今回は使用せず)\nga_accm:https://note.com/npaka/n/n04c493394e07 をつかうか\n\nを設定しています"
            }
          ]
        }
      ]
    },
    {
      "id": 2721485,
      "postDate": "2024-03-29T03:43:40.397Z",
      "content": "<p>先ほどの投稿とは別件の相談となり、連投で申し訳ありません。<br>\n別件の相談のため、先ほどのコメントに対してのreplyでの追記ではなく、新たなコメントの投稿とさせていただきます。</p>\n<p>今回の”baseline notebook for pathology AI competition”のコードについての確認です。<br>\n最後からひとつ前のセルに</p>\n<p>`## 推論にはあらかじめ10epoch学習した重みを使います cv score: 0.8891887121979621<br>\ntest = pd.read_csv(\"/kaggle/input/aipathology202403/sample_submission.csv\")<br>\nCFG.model.name = \"tf_efficientnet_b0_ns\" #resnet34dと同じくらいの軽さ　よくベースラインに用いられる<br>\ntest = submit(CFG,test,DIR=\"/kaggle/input/aipathologycotestexp000\")</p>\n<p>test.to_csv(f\"test_{CFG.general.exp_num}.csv\",index=False)`</p>\n<p>とのコードがありますが、これはtrain_fnで学習した各自のパラメータを利用せず、モデレーターの先生方が事前にsampleとして得ているパラメータを読み込み、CFGのmodel.nameをtf_efficientnet_b0_nsに変更の上、submit関数に入力している、というコードで理解は正しそうでしょうか？<br>\n今回のcompetitionの目的通り、それぞれが設定したハイパーパラメータを用いて、train_fnで学習したそれぞれのパラメータで、yamlで設定したmodel.name(初期設定としてはresnet34d)を読み込ませようとするなら、</p>\n<p>`test = pd.read_csv(\"#それぞれのnotebookのOutput内のpath\")<br>\nCFG.model.name = \"tf_efficientnet_b0_ns\" ←このコードをコメントアウト<br>\ntest = submit(CFG,test,DIR=\"#それぞれのnotebookのOutput内のpath\")</p>\n<p>test.to_csv(f\"test_{CFG.general.exp_num}.csv\",index=False)`</p>\n<p>などと修正した方がよいのでしょうか？</p>",
      "rawMarkdown": "先ほどの投稿とは別件の相談となり、連投で申し訳ありません。\n別件の相談のため、先ほどのコメントに対してのreplyでの追記ではなく、新たなコメントの投稿とさせていただきます。\n\n今回の”baseline notebook for pathology AI competition”のコードについての確認です。\n最後からひとつ前のセルに\n\n`## 推論にはあらかじめ10epoch学習した重みを使います cv score: 0.8891887121979621\ntest = pd.read_csv(\"/kaggle/input/aipathology202403/sample_submission.csv\")\nCFG.model.name = \"tf_efficientnet_b0_ns\" #resnet34dと同じくらいの軽さ　よくベースラインに用いられる\ntest = submit(CFG,test,DIR=\"/kaggle/input/aipathologycotestexp000\")\n\ntest.to_csv(f\"test_{CFG.general.exp_num}.csv\",index=False)`\n\nとのコードがありますが、これはtrain_fnで学習した各自のパラメータを利用せず、モデレーターの先生方が事前にsampleとして得ているパラメータを読み込み、CFGのmodel.nameをtf_efficientnet_b0_nsに変更の上、submit関数に入力している、というコードで理解は正しそうでしょうか？\n今回のcompetitionの目的通り、それぞれが設定したハイパーパラメータを用いて、train_fnで学習したそれぞれのパラメータで、yamlで設定したmodel.name(初期設定としてはresnet34d)を読み込ませようとするなら、\n\n`test = pd.read_csv(\"#それぞれのnotebookのOutput内のpath\")\nCFG.model.name = \"tf_efficientnet_b0_ns\" ←このコードをコメントアウト\ntest = submit(CFG,test,DIR=\"#それぞれのnotebookのOutput内のpath\")\n\ntest.to_csv(f\"test_{CFG.general.exp_num}.csv\",index=False)`\n\nなどと修正した方がよいのでしょうか？",
      "votes": 1,
      "replies": [
        {
          "id": 2721562,
          "postDate": "2024-03-29T05:04:46.840Z",
          "content": "<p>sample notebookで1epoch学習したのはrestent34d,10epoch事前に学習しておいたのはtf_efficientnet_b0_nsでモデルが異なります。notebook中で学習したモデルを使うばあいはご指摘のとおりです。</p>\n<pre><code>\ntest = submit(CFG,test,DIR=) \n</code></pre>",
          "rawMarkdown": "sample notebookで1epoch学習したのはrestent34d,10epoch事前に学習しておいたのはtf_efficientnet_b0_nsでモデルが異なります。notebook中で学習したモデルを使うばあいはご指摘のとおりです。\n\n```python\n#CFG.model.name = \"tf_efficientnet_b0_ns\" #コメントアウト\ntest = submit(CFG,test,DIR=\".\") \n\n```\n",
          "votes": 1,
          "replies": [
            {
              "id": 2721636,
              "postDate": "2024-03-29T06:02:48.193Z",
              "content": "<p>ありがとうございます。<br>\n現在submitしている3人が同じ精度になってしまっているのも、その影響がありそうでしょうか？</p>\n<p>また、yaml_strでfold数を変えていたのですが、fold.csvを作成する際にCFG.general.num_foldsを参照していなさそうなので、現状のコードでyaml_strのgeneralのnum_foldsを変更しても、fold数は変化しない、という理解であってそうでしょうか？</p>",
              "rawMarkdown": "ありがとうございます。\n現在submitしている3人が同じ精度になってしまっているのも、その影響がありそうでしょうか？\n\nまた、yaml_strでfold数を変えていたのですが、fold.csvを作成する際にCFG.general.num_foldsを参照していなさそうなので、現状のコードでyaml_strのgeneralのnum_foldsを変更しても、fold数は変化しない、という理解であってそうでしょうか？",
              "votes": 1
            },
            {
              "id": 2722152,
              "postDate": "2024-03-29T12:31:36.317Z",
              "content": "<p>num_foldsはおっしゃるとおりです。増やすと時間がかかりる割にさほど性能が上がらないだろうと考えて固定にしています。データ量や評価指標によってはfoldをふやすのが非常にworkすることがあります。(nlpコンペなど)</p>\n<p>0.9058は事前に学習したtf_efficientnet_b0_nsで推論しているためおなじになっています。</p>",
              "rawMarkdown": "num_foldsはおっしゃるとおりです。増やすと時間がかかりる割にさほど性能が上がらないだろうと考えて固定にしています。データ量や評価指標によってはfoldをふやすのが非常にworkすることがあります。(nlpコンペなど)\n\n\n0.9058は事前に学習したtf_efficientnet_b0_nsで推論しているためおなじになっています。"
            },
            {
              "id": 2723066,
              "postDate": "2024-03-30T00:21:57.767Z",
              "content": "<p>長時間の学習になるときに離席し、学習結果が保存されていないことがしばしばありローカルの環境で実装したいのですが、Anaconda環境で</p>\n<pre><code>CFG = CFG().get_cnf()\nfolds = pd.read_csv()\n\npreds = []\nvalid_labels = []\noof = pd.DataFrame()\n\ntest_pl = \n\n\n\n fold  ():\n    seed_torch(seed=CFG.general.seed)\n    _preds, _valid_labels,_oof_val = train_fn(CFG,fold,folds,test_pl)\n    preds.append(_preds)\n    valid_labels.append(_valid_labels)\n    oof = pd.concat([oof,_oof_val])\npreds = np.concatenate(preds)\nvalid_labels = np.concatenate(valid_labels)\n\n()\nAUC_score = roc_auc_score(valid_labels, preds,multi_class=)\n()\n\noof.to_csv(,index=)\n</code></pre>\n<p>を実行すると、以下の出力が出たまま止まってしまいます。</p>\n<pre><code>\n(, ) (, )\nC:\\Users\\lib\\site-packages\\albumentations\\augmentations\\transforms.py:: FutureWarning: JpegCompression has been deprecated. Please use ImageCompression\n  warnings.warn(\nC:\\Users\\lib\\site-packages\\albumentations\\augmentations\\transforms.py:: UserWarning: Using default interpolation INTER_NEAREST, which  sub-optimal.Please specify interpolation mode  downscale  upscale explicitly.For additional information see this PR https://github.com/albumentations-team/albumentations/pull/\n  warnings.warn(\nCrossEntropyLoss()\n</code></pre>\n<p>対策をご存じだったりしませんか？</p>",
              "rawMarkdown": "長時間の学習になるときに離席し、学習結果が保存されていないことがしばしばありローカルの環境で実装したいのですが、Anaconda環境で\n\n```python\nCFG = CFG().get_cnf()\nfolds = pd.read_csv(\"fold.csv\")\n\npreds = []\nvalid_labels = []\noof = pd.DataFrame()\n\ntest_pl = 0\n\n\n\nfor fold in range(4):\n    seed_torch(seed=CFG.general.seed)\n    _preds, _valid_labels,_oof_val = train_fn(CFG,fold,folds,test_pl)\n    preds.append(_preds)\n    valid_labels.append(_valid_labels)\n    oof = pd.concat([oof,_oof_val])\npreds = np.concatenate(preds)\nvalid_labels = np.concatenate(valid_labels)\n\nprint(f\"OOF:このスコアと提出したスコアをいくつかみて正の相関があるのか確認→実験が多くなってきたら OOF-AUCが上昇した実験のみsubmissionしてみる？　\")\nAUC_score = roc_auc_score(valid_labels, preds,multi_class=\"ovr\")\nprint(f\"AUC_score  {AUC_score}\")\n\noof.to_csv(f\"oof_{CFG.general.exp_num}.csv\",index=False)\n```\n\nを実行すると、以下の出力が出たまま止まってしまいます。\n\n```python\n### fold: 0 ###\n(586, 5) (1758, 5)\nC:\\Users\\lib\\site-packages\\albumentations\\augmentations\\transforms.py:311: FutureWarning: JpegCompression has been deprecated. Please use ImageCompression\n  warnings.warn(\nC:\\Users\\lib\\site-packages\\albumentations\\augmentations\\transforms.py:1692: UserWarning: Using default interpolation INTER_NEAREST, which is sub-optimal.Please specify interpolation mode for downscale and upscale explicitly.For additional information see this PR https://github.com/albumentations-team/albumentations/pull/584\n  warnings.warn(\nCrossEntropyLoss()\n```\n\n対策をご存じだったりしませんか？"
            },
            {
              "id": 2723075,
              "postDate": "2024-03-30T00:33:35.550Z",
              "content": "<p>＞長時間の学習になるときに離席<br>\n右上save version →中ほどsave run all(commit)→下のsave でnotebbok実行して結果を保存できます</p>\n<blockquote>\n  <p>止まってしまいます<br>\n  どこで止まっているか不明なので　</p>\n</blockquote>\n<pre><code>        avg_loss = .#ここ\n\n\n        tk0 = ((train_loader), total=(train_loader))\n\n         , (images, labels)  tk0:\n            optimizer()\n\n            #GPUにデータを移し替え\n            images = images(device)#ここ\n</code></pre>\n<p>あたりでprintデバックをしていただけますか？</p>",
              "rawMarkdown": "＞長時間の学習になるときに離席\n右上save version →中ほどsave run all(commit)→下のsave でnotebbok実行して結果を保存できます\n\n>止まってしまいます\nどこで止まっているか不明なので　\n\n```\n        avg_loss = 0.#ここ\n\n\n        tk0 = tqdm(enumerate(train_loader), total=len(train_loader))\n\n        for i, (images, labels) in tk0:\n            optimizer.zero_grad()\n            \n            #GPUにデータを移し替え\n            images = images.to(device)#ここ\n```\nあたりでprintデバックをしていただけますか？\n"
            },
            {
              "id": 2723149,
              "postDate": "2024-03-30T01:41:38.340Z",
              "content": "<p>初歩的な質問ばかりで申し訳ありません。ご対応いただきありがとうございます。<br>\n今まで独学で分かってなかった部分の確認にもなっており、非常に助かっております。</p>\n<p>save run all(commit)もやってみていたのですが、最終的に画面左下の時計マーク？で表示される進捗でfailureとなっており、保存できていなかったことがあったので、以降実施していませんでした。<br>\nsave run all(commit)を実行した場合、保存された結果はどこに表示されるのでしょうか？outputのところにsession再開時にも残ったままとなるのでしょうか？</p>\n<blockquote>\n  <p>あたりでprintデバックをしていただけますか？<br>\n  ”printデバック”の方法自体がわかりません…。<br>\n  一応調べて出てきたqiitaに</p>\n</blockquote>\n<pre><code> IPython.core.debugger  Pdb; Pdb().set_trace()\n</code></pre>\n<p>というコードを見つけましたが、これで合っていますでしょうか…？</p>",
              "rawMarkdown": "初歩的な質問ばかりで申し訳ありません。ご対応いただきありがとうございます。\n今まで独学で分かってなかった部分の確認にもなっており、非常に助かっております。\n\nsave run all(commit)もやってみていたのですが、最終的に画面左下の時計マーク？で表示される進捗でfailureとなっており、保存できていなかったことがあったので、以降実施していませんでした。\nsave run all(commit)を実行した場合、保存された結果はどこに表示されるのでしょうか？outputのところにsession再開時にも残ったままとなるのでしょうか？\n\n>あたりでprintデバックをしていただけますか？\n”printデバック”の方法自体がわかりません…。\n一応調べて出てきたqiitaに\n\n```python\nfrom IPython.core.debugger import Pdb; Pdb().set_trace()\n```\nというコードを見つけましたが、これで合っていますでしょうか…？",
              "votes": 1
            },
            {
              "id": 2723177,
              "postDate": "2024-03-30T02:36:30.640Z",
              "content": "<p>Commitして実行が完了すればnotebookのバージョンが更新されてv2のoutputに実行結果が保存されます。</p>\n<p>失敗した場合はnotebookのlogを見てどんなエラーがあるのか確認します。</p>\n<p>printデバックはprint(“あああ”)のようなものを適当な部分に入れたり変数のtypeなど中身を実際にprintしたりすることです。</p>\n<p><a href=\"https://github.com/ashleve/lightning-hydra-template\" target=\"_blank\">https://github.com/ashleve/lightning-hydra-template</a>　config管理はこれなどがテンプレートとして使いやすく人気です。</p>",
              "rawMarkdown": "Commitして実行が完了すればnotebookのバージョンが更新されてv2のoutputに実行結果が保存されます。\n\n失敗した場合はnotebookのlogを見てどんなエラーがあるのか確認します。\n\nprintデバックはprint(“あああ”)のようなものを適当な部分に入れたり変数のtypeなど中身を実際にprintしたりすることです。\n\nhttps://github.com/ashleve/lightning-hydra-template　config管理はこれなどがテンプレートとして使いやすく人気です。"
            }
          ]
        }
      ]
    },
    {
      "id": 2721352,
      "postDate": "2024-03-29T01:05:06.497Z",
      "content": "<p>名古屋大学医学系研究科 血液・腫瘍内科 江口です。<br>\n昨日は皆さまありがとうございました。</p>\n<p>昨日帰宅してから、エポック数を50ほどにしてみたところ、2foldほどでタイムアウト(無操作で1時間？)してしまったようです。<br>\n10epochs程度からoverfitting気味だと思われるため、lrの調整などなしにそこまでepochsを増やさなくてもよさそうですが、今後モデル改善のために学習時間を長くしたい場合、ノートブックのタイムアウト対策でできることはありますでしょうか？</p>",
      "rawMarkdown": "名古屋大学医学系研究科 血液・腫瘍内科 江口です。\n昨日は皆さまありがとうございました。\n\n昨日帰宅してから、エポック数を50ほどにしてみたところ、2foldほどでタイムアウト(無操作で1時間？)してしまったようです。\n10epochs程度からoverfitting気味だと思われるため、lrの調整などなしにそこまでepochsを増やさなくてもよさそうですが、今後モデル改善のために学習時間を長くしたい場合、ノートブックのタイムアウト対策でできることはありますでしょうか？",
      "votes": 1,
      "replies": [
        {
          "id": 2721555,
          "postDate": "2024-03-29T04:59:29.287Z",
          "content": "<p>タイムアウト対策には、1epoch学習で挙動を確認→sessionをkill()→右上save version →中ほどsave run all(commit)→下のsave でnotebbok実行して結果を保存できます。</p>",
          "rawMarkdown": "タイムアウト対策には、1epoch学習で挙動を確認→sessionをkill()→右上save version →中ほどsave run all(commit)→下のsave でnotebbok実行して結果を保存できます。",
          "votes": 1,
          "replies": [
            {
              "id": 2721557,
              "postDate": "2024-03-29T05:00:26.820Z",
              "content": "<p>augmentationを強めると収束するまでにかかるepoch数が増えるはずです。<br>\nまた、maxxvitv2_nano_rw_256.sw_in1k(lr=0.0005 batch_size: 4)などに変更すれば学習時間が伸びるかわりに性能があがるかもしれません。<br>\nN_patchをふやすのも良さそうです。</p>",
              "rawMarkdown": "augmentationを強めると収束するまでにかかるepoch数が増えるはずです。\nまた、maxxvitv2_nano_rw_256.sw_in1k(lr=0.0005 batch_size: 4)などに変更すれば学習時間が伸びるかわりに性能があがるかもしれません。\nN_patchをふやすのも良さそうです。",
              "votes": 1
            }
          ]
        }
      ]
    },
    {
      "id": 2713711,
      "postDate": "2024-03-24T11:29:13.680Z",
      "content": "<p>=====川井先生の実験=====</p>\n<p>CLAM-SM/MB(-like), SimCLRの結果</p>\n<p>CLAM-SB/MBを試してみました。CLAMのソースはちょっとわかりにくい点もありますので、独自実装したものを使いました（Githubで公開予定ですが公開前に流用される場合はご連絡ください）。オリジナルと違ってaugmentationがある、efficientnet-b0-nsをベースにbackboneも学習している、という違いがあります。<br>\nCLAM-SB: 0.8423/0.7973<br>\nCLAM-MB: 0.812/0.7672<br>\nAttentionをscaled dot-product attentionとしたものも試したものの、性能は下がってしまいました。</p>\n<p>Unlabelデータを使ってSimCLRで追加学習をしたものも試しましたが、baselineと性能は変わりませんでした(0.8923/0.8935)。急いで実装したのでSimCLRの学習がうまくいかなかった可能性もあります。</p>\n<p><a href=\"https://storage.googleapis.com/kaggle-forum-message-attachments/2645968/20286/baseline-for-pathology-ai-competetion_0206_multiLR_CLAM-SB%20(1).ipynb\" target=\"_blank\">https://storage.googleapis.com/kaggle-forum-message-attachments/2645968/20286/baseline-for-pathology-ai-competetion_0206_multiLR_CLAM-SB%20(1).ipynb</a> </p>",
      "rawMarkdown": "=====川井先生の実験=====\n\nCLAM-SM/MB(-like), SimCLRの結果\n\nCLAM-SB/MBを試してみました。CLAMのソースはちょっとわかりにくい点もありますので、独自実装したものを使いました（Githubで公開予定ですが公開前に流用される場合はご連絡ください）。オリジナルと違ってaugmentationがある、efficientnet-b0-nsをベースにbackboneも学習している、という違いがあります。\nCLAM-SB: 0.8423/0.7973\nCLAM-MB: 0.812/0.7672\nAttentionをscaled dot-product attentionとしたものも試したものの、性能は下がってしまいました。\n\nUnlabelデータを使ってSimCLRで追加学習をしたものも試しましたが、baselineと性能は変わりませんでした(0.8923/0.8935)。急いで実装したのでSimCLRの学習がうまくいかなかった可能性もあります。\n\nhttps://storage.googleapis.com/kaggle-forum-message-attachments/2645968/20286/baseline-for-pathology-ai-competetion_0206_multiLR_CLAM-SB%20(1).ipynb ",
      "votes": 1
    },
    {
      "id": 2642752,
      "postDate": "2024-02-08T11:41:03.257Z",
      "content": "<p>困ったことや質問があれば<br>\ndiscussionにトピックを立てるかこのスレッドに書き込んでください🙇‍♂</p>\n<p>まずは<br>\n<a href=\"https://speakerdeck.com/inoichan/di-4hui-quan-guo-yi-liao-aikontesuto-kagglekaraxue-ndayi-liao-hua-xiang-detajie-xi-falsequ-rizu-mifang\" target=\"_blank\">https://speakerdeck.com/inoichan/di-4hui-quan-guo-yi-liao-aikontesuto-kagglekaraxue-ndayi-liao-hua-xiang-detajie-xi-falsequ-rizu-mifang</a> を読んで取り組み方を見てみてください</p>",
      "rawMarkdown": "困ったことや質問があれば\ndiscussionにトピックを立てるかこのスレッドに書き込んでください🙇‍♂\n\nまずは\nhttps://speakerdeck.com/inoichan/di-4hui-quan-guo-yi-liao-aikontesuto-kagglekaraxue-ndayi-liao-hua-xiang-detajie-xi-falsequ-rizu-mifang を読んで取り組み方を見てみてください",
      "votes": 1
    },
    {
      "id": 2723071,
      "postDate": "2024-03-30T00:25:04.190Z",
      "rawMarkdown": "",
      "isDeleted": true
    }
  ],
  "comments": [
    {
      "id": 2735133,
      "author_name": "Motoki Eguchi",
      "author_url": "",
      "post_date": "2024-04-04T14:49:11.877000",
      "content": "<p>運営より連絡もあったため、ルールに従い解法を共有させてもらいます。</p>\n<p>とはいうものの、基本的にはbaseline notebookのCFGとして利用するyaml内のパラメータを変更したのみです。基本的にbatch sizeを16、32、64で試し、out of memoryとならないなら次にpatchを増やす、という程度の微調整をしたのみです。<br>\nVersionの保存がいくつかうまくいっていないこともあり、試したことの順序も正確ではないですが、<br>\n1    モデルをefficientvit_b0.r224_in1k、10 epochで学習<br>\n2    学習が収束していなさそうであるため25 epochに増加<br>\n3    CoAtNetに変更しようとしたが、途中でエラーが出てしまい(学習ループを回そうとするとModel_iafossの処理経過でエラー？)、エラーの原因を検討する時間がなく断念。<br>\n4    EfficientNetV2_S 30 epochsで学習。訓練ループ完了までに時間がかかったわりに過学習で性能の向上なく、他のモデルを試す時間を消費する。<br>\n5    resnext50_32x4d.a1_in1kを12epoch学習。<br>\n6    Maxxvit2_nano_rw_256.sw_in1kを試したが、lr 0.001では学習が安定しなかった上に、時間内に実行完了してsubmitできず、かつ保存もエラーとなりlate submitも実現できず。</p>\n<p>上記の試行の結果、efficientvit_b0.r224_in1k、batch size 64、N patch 12、25epochsが試行した中では最も成績がよい結果となりました。</p>\n<p>蛇足かもしれませんが、あまりたくさんのことを試せなかった理由としては以下のようなものがあげられるかなと感じました。今後の病理学会でのコンペ開催時の運営の参考にもなるかもしれませんので、あまり需要はないかもしれませんが共有しておきます。<br>\n・kaggleの使い方に慣れていなかった。(開催2日ほど前から予習をしていきましたが、コード内容の把握にも時間を要し、理解をあきらめてサンプルコードをとりあえず走らせる段階でもacceleratorの選択ができないことやhydraのインストールができないなど事前に全コードの実行さえもできず、結局当日のセミナーまで解決できなかった。その後も、notebookのsave run allでうまく保存できなかったため、sessionのtime outにより効率より試行を重ねられなかった)<br>\n・試行回数を増やすためにAnaconda環境でも並行して演算を実行したかったが、hydraのインストールに時間を要するなどして、並行した試行を重ねられなかった。最終的にはCFG = CFG().get_cnf()のセルの実行でもエラーが出てしまい、解決もできない状態から今も抜け出せていない。</p>\n<p>雑多な文となってしまいましたが、ひとまず試したこととして共有させていただきます。<br>\nもう少し追加の状況も共有してほしいなどあれば、ご指摘いただければ追加で説明させていただきます。</p>",
      "votes": 1,
      "replies": [
        {
          "id": 2736147,
          "author_name": "patriot",
          "author_url": "",
          "post_date": "2024-04-05T03:52:53.633000",
          "content": "<p>詳細な解法を共有いただきありがとうございます！</p>\n<p><a href=\"https://www.kaggle.com/code/abebe9849/baseline-for-pathology-ai-competetion\" target=\"_blank\">https://www.kaggle.com/code/abebe9849/baseline-for-pathology-ai-competetion</a> maxvitはlrの調整に敏感なので勾配clipや低いlrなどで抑えめに学習するのが良さそうです。</p>\n<p>メモリ乗らない問題はgradient checkpointを使用すると解決すると思います。</p>",
          "votes": 1,
          "replies": []
        },
        {
          "id": 2738292,
          "author_name": "Motoki Eguchi",
          "author_url": "",
          "post_date": "2024-04-06T08:49:46.687000",
          "content": "<p><a href=\"https://www.kaggle.com/code/abebe9849/baseline-for-pathology-ai-competetion\" target=\"_blank\">https://www.kaggle.com/code/abebe9849/baseline-for-pathology-ai-competetion</a><br>\nこのノートブックのハイパーパラメータでscore 0.9403になった、ということでしょうか？<br>\nこちらがコンペでの運営がサンプルの投稿で達成していたscoreでしょうか？</p>\n<p>yamlの内部にも一部わからないものがあるのですが、例えば</p>\n<pre><code>train:\n  amp: true\n  amp_inf: false\n  without_hesitate: \n  ga_accum: \n</code></pre>\n<p>などは、それぞれ何を設定したものなのでしょうか？<br>\n(class Model_iafossあたりを解読すれば理解できるのかもしれませんが、コードの解読にもまだかなりの労力を要するレベルですので、教えていただけるとありがたいです。)</p>",
          "votes": 0,
          "replies": [
            {
              "id": 2738323,
              "author_name": "patriot",
              "author_url": "",
              "post_date": "2024-04-06T09:10:14.543000",
              "content": "<p>score 0.9403はlocalのA6000で同じモデルでN patchを36にふやして学習させたものです。<br>\namp/amp_inf:<a href=\"https://pytorch.org/docs/stable/amp.html\" target=\"_blank\">https://pytorch.org/docs/stable/amp.html</a>　を使うかどうか<br>\nwithout_hesitate:mixupなど強めのaugmentationをつかうときにラスト数epochでmixupを外す(今回は使用せず)<br>\nga_accm:<a href=\"https://note.com/npaka/n/n04c493394e07\" target=\"_blank\">https://note.com/npaka/n/n04c493394e07</a> をつかうか<br>\nを設定しています</p>",
              "votes": 0,
              "replies": []
            }
          ]
        }
      ]
    },
    {
      "id": 2721485,
      "author_name": "Motoki Eguchi",
      "author_url": "",
      "post_date": "2024-03-29T03:43:40.397000",
      "content": "<p>先ほどの投稿とは別件の相談となり、連投で申し訳ありません。<br>\n別件の相談のため、先ほどのコメントに対してのreplyでの追記ではなく、新たなコメントの投稿とさせていただきます。</p>\n<p>今回の”baseline notebook for pathology AI competition”のコードについての確認です。<br>\n最後からひとつ前のセルに</p>\n<p>`## 推論にはあらかじめ10epoch学習した重みを使います cv score: 0.8891887121979621<br>\ntest = pd.read_csv(\"/kaggle/input/aipathology202403/sample_submission.csv\")<br>\nCFG.model.name = \"tf_efficientnet_b0_ns\" #resnet34dと同じくらいの軽さ　よくベースラインに用いられる<br>\ntest = submit(CFG,test,DIR=\"/kaggle/input/aipathologycotestexp000\")</p>\n<p>test.to_csv(f\"test_{CFG.general.exp_num}.csv\",index=False)`</p>\n<p>とのコードがありますが、これはtrain_fnで学習した各自のパラメータを利用せず、モデレーターの先生方が事前にsampleとして得ているパラメータを読み込み、CFGのmodel.nameをtf_efficientnet_b0_nsに変更の上、submit関数に入力している、というコードで理解は正しそうでしょうか？<br>\n今回のcompetitionの目的通り、それぞれが設定したハイパーパラメータを用いて、train_fnで学習したそれぞれのパラメータで、yamlで設定したmodel.name(初期設定としてはresnet34d)を読み込ませようとするなら、</p>\n<p>`test = pd.read_csv(\"#それぞれのnotebookのOutput内のpath\")<br>\nCFG.model.name = \"tf_efficientnet_b0_ns\" ←このコードをコメントアウト<br>\ntest = submit(CFG,test,DIR=\"#それぞれのnotebookのOutput内のpath\")</p>\n<p>test.to_csv(f\"test_{CFG.general.exp_num}.csv\",index=False)`</p>\n<p>などと修正した方がよいのでしょうか？</p>",
      "votes": 1,
      "replies": [
        {
          "id": 2721562,
          "author_name": "patriot",
          "author_url": "",
          "post_date": "2024-03-29T05:04:46.840000",
          "content": "<p>sample notebookで1epoch学習したのはrestent34d,10epoch事前に学習しておいたのはtf_efficientnet_b0_nsでモデルが異なります。notebook中で学習したモデルを使うばあいはご指摘のとおりです。</p>\n<pre><code>\ntest = submit(CFG,test,DIR=) \n</code></pre>",
          "votes": 1,
          "replies": [
            {
              "id": 2721636,
              "author_name": "Motoki Eguchi",
              "author_url": "",
              "post_date": "2024-03-29T06:02:48.193000",
              "content": "<p>ありがとうございます。<br>\n現在submitしている3人が同じ精度になってしまっているのも、その影響がありそうでしょうか？</p>\n<p>また、yaml_strでfold数を変えていたのですが、fold.csvを作成する際にCFG.general.num_foldsを参照していなさそうなので、現状のコードでyaml_strのgeneralのnum_foldsを変更しても、fold数は変化しない、という理解であってそうでしょうか？</p>",
              "votes": 1,
              "replies": []
            },
            {
              "id": 2722152,
              "author_name": "patriot",
              "author_url": "",
              "post_date": "2024-03-29T12:31:36.317000",
              "content": "<p>num_foldsはおっしゃるとおりです。増やすと時間がかかりる割にさほど性能が上がらないだろうと考えて固定にしています。データ量や評価指標によってはfoldをふやすのが非常にworkすることがあります。(nlpコンペなど)</p>\n<p>0.9058は事前に学習したtf_efficientnet_b0_nsで推論しているためおなじになっています。</p>",
              "votes": 0,
              "replies": []
            },
            {
              "id": 2723066,
              "author_name": "Motoki Eguchi",
              "author_url": "",
              "post_date": "2024-03-30T00:21:57.767000",
              "content": "<p>長時間の学習になるときに離席し、学習結果が保存されていないことがしばしばありローカルの環境で実装したいのですが、Anaconda環境で</p>\n<pre><code>CFG = CFG().get_cnf()\nfolds = pd.read_csv()\n\npreds = []\nvalid_labels = []\noof = pd.DataFrame()\n\ntest_pl = \n\n\n\n fold  ():\n    seed_torch(seed=CFG.general.seed)\n    _preds, _valid_labels,_oof_val = train_fn(CFG,fold,folds,test_pl)\n    preds.append(_preds)\n    valid_labels.append(_valid_labels)\n    oof = pd.concat([oof,_oof_val])\npreds = np.concatenate(preds)\nvalid_labels = np.concatenate(valid_labels)\n\n()\nAUC_score = roc_auc_score(valid_labels, preds,multi_class=)\n()\n\noof.to_csv(,index=)\n</code></pre>\n<p>を実行すると、以下の出力が出たまま止まってしまいます。</p>\n<pre><code>\n(, ) (, )\nC:\\Users\\lib\\site-packages\\albumentations\\augmentations\\transforms.py:: FutureWarning: JpegCompression has been deprecated. Please use ImageCompression\n  warnings.warn(\nC:\\Users\\lib\\site-packages\\albumentations\\augmentations\\transforms.py:: UserWarning: Using default interpolation INTER_NEAREST, which  sub-optimal.Please specify interpolation mode  downscale  upscale explicitly.For additional information see this PR https://github.com/albumentations-team/albumentations/pull/\n  warnings.warn(\nCrossEntropyLoss()\n</code></pre>\n<p>対策をご存じだったりしませんか？</p>",
              "votes": 0,
              "replies": []
            },
            {
              "id": 2723075,
              "author_name": "patriot",
              "author_url": "",
              "post_date": "2024-03-30T00:33:35.550000",
              "content": "<p>＞長時間の学習になるときに離席<br>\n右上save version →中ほどsave run all(commit)→下のsave でnotebbok実行して結果を保存できます</p>\n<blockquote>\n  <p>止まってしまいます<br>\n  どこで止まっているか不明なので　</p>\n</blockquote>\n<pre><code>        avg_loss = .#ここ\n\n\n        tk0 = ((train_loader), total=(train_loader))\n\n         , (images, labels)  tk0:\n            optimizer()\n\n            #GPUにデータを移し替え\n            images = images(device)#ここ\n</code></pre>\n<p>あたりでprintデバックをしていただけますか？</p>",
              "votes": 0,
              "replies": []
            },
            {
              "id": 2723149,
              "author_name": "Motoki Eguchi",
              "author_url": "",
              "post_date": "2024-03-30T01:41:38.340000",
              "content": "<p>初歩的な質問ばかりで申し訳ありません。ご対応いただきありがとうございます。<br>\n今まで独学で分かってなかった部分の確認にもなっており、非常に助かっております。</p>\n<p>save run all(commit)もやってみていたのですが、最終的に画面左下の時計マーク？で表示される進捗でfailureとなっており、保存できていなかったことがあったので、以降実施していませんでした。<br>\nsave run all(commit)を実行した場合、保存された結果はどこに表示されるのでしょうか？outputのところにsession再開時にも残ったままとなるのでしょうか？</p>\n<blockquote>\n  <p>あたりでprintデバックをしていただけますか？<br>\n  ”printデバック”の方法自体がわかりません…。<br>\n  一応調べて出てきたqiitaに</p>\n</blockquote>\n<pre><code> IPython.core.debugger  Pdb; Pdb().set_trace()\n</code></pre>\n<p>というコードを見つけましたが、これで合っていますでしょうか…？</p>",
              "votes": 1,
              "replies": []
            },
            {
              "id": 2723177,
              "author_name": "patriot",
              "author_url": "",
              "post_date": "2024-03-30T02:36:30.640000",
              "content": "<p>Commitして実行が完了すればnotebookのバージョンが更新されてv2のoutputに実行結果が保存されます。</p>\n<p>失敗した場合はnotebookのlogを見てどんなエラーがあるのか確認します。</p>\n<p>printデバックはprint(“あああ”)のようなものを適当な部分に入れたり変数のtypeなど中身を実際にprintしたりすることです。</p>\n<p><a href=\"https://github.com/ashleve/lightning-hydra-template\" target=\"_blank\">https://github.com/ashleve/lightning-hydra-template</a>　config管理はこれなどがテンプレートとして使いやすく人気です。</p>",
              "votes": 0,
              "replies": []
            }
          ]
        }
      ]
    },
    {
      "id": 2721352,
      "author_name": "Motoki Eguchi",
      "author_url": "",
      "post_date": "2024-03-29T01:05:06.497000",
      "content": "<p>名古屋大学医学系研究科 血液・腫瘍内科 江口です。<br>\n昨日は皆さまありがとうございました。</p>\n<p>昨日帰宅してから、エポック数を50ほどにしてみたところ、2foldほどでタイムアウト(無操作で1時間？)してしまったようです。<br>\n10epochs程度からoverfitting気味だと思われるため、lrの調整などなしにそこまでepochsを増やさなくてもよさそうですが、今後モデル改善のために学習時間を長くしたい場合、ノートブックのタイムアウト対策でできることはありますでしょうか？</p>",
      "votes": 1,
      "replies": [
        {
          "id": 2721555,
          "author_name": "patriot",
          "author_url": "",
          "post_date": "2024-03-29T04:59:29.287000",
          "content": "<p>タイムアウト対策には、1epoch学習で挙動を確認→sessionをkill()→右上save version →中ほどsave run all(commit)→下のsave でnotebbok実行して結果を保存できます。</p>",
          "votes": 1,
          "replies": [
            {
              "id": 2721557,
              "author_name": "patriot",
              "author_url": "",
              "post_date": "2024-03-29T05:00:26.820000",
              "content": "<p>augmentationを強めると収束するまでにかかるepoch数が増えるはずです。<br>\nまた、maxxvitv2_nano_rw_256.sw_in1k(lr=0.0005 batch_size: 4)などに変更すれば学習時間が伸びるかわりに性能があがるかもしれません。<br>\nN_patchをふやすのも良さそうです。</p>",
              "votes": 1,
              "replies": []
            }
          ]
        }
      ]
    },
    {
      "id": 2713711,
      "author_name": "patriot",
      "author_url": "",
      "post_date": "2024-03-24T11:29:13.680000",
      "content": "<p>=====川井先生の実験=====</p>\n<p>CLAM-SM/MB(-like), SimCLRの結果</p>\n<p>CLAM-SB/MBを試してみました。CLAMのソースはちょっとわかりにくい点もありますので、独自実装したものを使いました（Githubで公開予定ですが公開前に流用される場合はご連絡ください）。オリジナルと違ってaugmentationがある、efficientnet-b0-nsをベースにbackboneも学習している、という違いがあります。<br>\nCLAM-SB: 0.8423/0.7973<br>\nCLAM-MB: 0.812/0.7672<br>\nAttentionをscaled dot-product attentionとしたものも試したものの、性能は下がってしまいました。</p>\n<p>Unlabelデータを使ってSimCLRで追加学習をしたものも試しましたが、baselineと性能は変わりませんでした(0.8923/0.8935)。急いで実装したのでSimCLRの学習がうまくいかなかった可能性もあります。</p>\n<p><a href=\"https://storage.googleapis.com/kaggle-forum-message-attachments/2645968/20286/baseline-for-pathology-ai-competetion_0206_multiLR_CLAM-SB%20(1).ipynb\" target=\"_blank\">https://storage.googleapis.com/kaggle-forum-message-attachments/2645968/20286/baseline-for-pathology-ai-competetion_0206_multiLR_CLAM-SB%20(1).ipynb</a> </p>",
      "votes": 1,
      "replies": []
    },
    {
      "id": 2723071,
      "author_name": "",
      "author_url": "",
      "post_date": "2024-03-30T00:25:04.190000",
      "content": "",
      "votes": 0,
      "replies": []
    }
  ],
  "raw_markdown_by_id": {
    "2735133": "運営より連絡もあったため、ルールに従い解法を共有させてもらいます。\n\nとはいうものの、基本的にはbaseline notebookのCFGとして利用するyaml内のパラメータを変更したのみです。基本的にbatch sizeを16、32、64で試し、out of memoryとならないなら次にpatchを増やす、という程度の微調整をしたのみです。\nVersionの保存がいくつかうまくいっていないこともあり、試したことの順序も正確ではないですが、\n1\tモデルをefficientvit_b0.r224_in1k、10 epochで学習\n2\t学習が収束していなさそうであるため25 epochに増加\n3\tCoAtNetに変更しようとしたが、途中でエラーが出てしまい(学習ループを回そうとするとModel_iafossの処理経過でエラー？)、エラーの原因を検討する時間がなく断念。\n4\tEfficientNetV2_S 30 epochsで学習。訓練ループ完了までに時間がかかったわりに過学習で性能の向上なく、他のモデルを試す時間を消費する。\n5\tresnext50_32x4d.a1_in1kを12epoch学習。\n6\tMaxxvit2_nano_rw_256.sw_in1kを試したが、lr 0.001では学習が安定しなかった上に、時間内に実行完了してsubmitできず、かつ保存もエラーとなりlate submitも実現できず。\n\n上記の試行の結果、efficientvit_b0.r224_in1k、batch size 64、N patch 12、25epochsが試行した中では最も成績がよい結果となりました。\n\n蛇足かもしれませんが、あまりたくさんのことを試せなかった理由としては以下のようなものがあげられるかなと感じました。今後の病理学会でのコンペ開催時の運営の参考にもなるかもしれませんので、あまり需要はないかもしれませんが共有しておきます。\n・kaggleの使い方に慣れていなかった。(開催2日ほど前から予習をしていきましたが、コード内容の把握にも時間を要し、理解をあきらめてサンプルコードをとりあえず走らせる段階でもacceleratorの選択ができないことやhydraのインストールができないなど事前に全コードの実行さえもできず、結局当日のセミナーまで解決できなかった。その後も、notebookのsave run allでうまく保存できなかったため、sessionのtime outにより効率より試行を重ねられなかった)\n・試行回数を増やすためにAnaconda環境でも並行して演算を実行したかったが、hydraのインストールに時間を要するなどして、並行した試行を重ねられなかった。最終的にはCFG = CFG().get_cnf()のセルの実行でもエラーが出てしまい、解決もできない状態から今も抜け出せていない。\n\n雑多な文となってしまいましたが、ひとまず試したこととして共有させていただきます。\nもう少し追加の状況も共有してほしいなどあれば、ご指摘いただければ追加で説明させていただきます。\n",
    "2721485": "先ほどの投稿とは別件の相談となり、連投で申し訳ありません。\n別件の相談のため、先ほどのコメントに対してのreplyでの追記ではなく、新たなコメントの投稿とさせていただきます。\n\n今回の”baseline notebook for pathology AI competition”のコードについての確認です。\n最後からひとつ前のセルに\n\n`## 推論にはあらかじめ10epoch学習した重みを使います cv score: 0.8891887121979621\ntest = pd.read_csv(\"/kaggle/input/aipathology202403/sample_submission.csv\")\nCFG.model.name = \"tf_efficientnet_b0_ns\" #resnet34dと同じくらいの軽さ　よくベースラインに用いられる\ntest = submit(CFG,test,DIR=\"/kaggle/input/aipathologycotestexp000\")\n\ntest.to_csv(f\"test_{CFG.general.exp_num}.csv\",index=False)`\n\nとのコードがありますが、これはtrain_fnで学習した各自のパラメータを利用せず、モデレーターの先生方が事前にsampleとして得ているパラメータを読み込み、CFGのmodel.nameをtf_efficientnet_b0_nsに変更の上、submit関数に入力している、というコードで理解は正しそうでしょうか？\n今回のcompetitionの目的通り、それぞれが設定したハイパーパラメータを用いて、train_fnで学習したそれぞれのパラメータで、yamlで設定したmodel.name(初期設定としてはresnet34d)を読み込ませようとするなら、\n\n`test = pd.read_csv(\"#それぞれのnotebookのOutput内のpath\")\nCFG.model.name = \"tf_efficientnet_b0_ns\" ←このコードをコメントアウト\ntest = submit(CFG,test,DIR=\"#それぞれのnotebookのOutput内のpath\")\n\ntest.to_csv(f\"test_{CFG.general.exp_num}.csv\",index=False)`\n\nなどと修正した方がよいのでしょうか？",
    "2721352": "名古屋大学医学系研究科 血液・腫瘍内科 江口です。\n昨日は皆さまありがとうございました。\n\n昨日帰宅してから、エポック数を50ほどにしてみたところ、2foldほどでタイムアウト(無操作で1時間？)してしまったようです。\n10epochs程度からoverfitting気味だと思われるため、lrの調整などなしにそこまでepochsを増やさなくてもよさそうですが、今後モデル改善のために学習時間を長くしたい場合、ノートブックのタイムアウト対策でできることはありますでしょうか？",
    "2713711": "=====川井先生の実験=====\n\nCLAM-SM/MB(-like), SimCLRの結果\n\nCLAM-SB/MBを試してみました。CLAMのソースはちょっとわかりにくい点もありますので、独自実装したものを使いました（Githubで公開予定ですが公開前に流用される場合はご連絡ください）。オリジナルと違ってaugmentationがある、efficientnet-b0-nsをベースにbackboneも学習している、という違いがあります。\nCLAM-SB: 0.8423/0.7973\nCLAM-MB: 0.812/0.7672\nAttentionをscaled dot-product attentionとしたものも試したものの、性能は下がってしまいました。\n\nUnlabelデータを使ってSimCLRで追加学習をしたものも試しましたが、baselineと性能は変わりませんでした(0.8923/0.8935)。急いで実装したのでSimCLRの学習がうまくいかなかった可能性もあります。\n\nhttps://storage.googleapis.com/kaggle-forum-message-attachments/2645968/20286/baseline-for-pathology-ai-competetion_0206_multiLR_CLAM-SB%20(1).ipynb ",
    "2642752": "困ったことや質問があれば\ndiscussionにトピックを立てるかこのスレッドに書き込んでください🙇‍♂\n\nまずは\nhttps://speakerdeck.com/inoichan/di-4hui-quan-guo-yi-liao-aikontesuto-kagglekaraxue-ndayi-liao-hua-xiang-detajie-xi-falsequ-rizu-mifang を読んで取り組み方を見てみてください",
    "2723071": ""
  }
}