<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          Kaggle | 如何解決提交錯(cuò)誤

          共 2007字,需瀏覽 5分鐘

           ·

          2022-03-07 22:06

          ?

          ?
          老肥近期參加Kaggle平臺(tái)的比賽,因?yàn)楸荣愵?lèi)型為Code Competition,測(cè)試數(shù)據(jù)并不可見(jiàn),我們需要將notebook代碼在線提交進(jìn)行推理,而因?yàn)闇y(cè)試集不可以見(jiàn)經(jīng)常會(huì)遇到提交Error,同時(shí)報(bào)錯(cuò)完整的日志并不返回,只返回錯(cuò)誤大類(lèi)類(lèi)型,在Debug時(shí)有一定程度上的困難。今天我便將之前遇到過(guò)的一些報(bào)錯(cuò)以及如何排查來(lái)做一個(gè)簡(jiǎn)單的總結(jié)回顧,使得自己在今后的提交盡量避免出錯(cuò)。
          我們首先假設(shè)我們所要提交notebook在kaggle的notebook環(huán)境上能夠正常運(yùn)行,并且成功保存為新的版本,接下來(lái)對(duì)以下報(bào)錯(cuò)進(jìn)行逐一分析(通常我們碰到的為前三類(lèi)報(bào)錯(cuò))。

          1. Notebook Threw Exception

          因?yàn)楸荣愃o出的sample_test文件僅包含極少量數(shù)據(jù),最后線上用來(lái)預(yù)測(cè)的測(cè)試集可能和公開(kāi)的數(shù)據(jù)集有差異的情況,這便是導(dǎo)致異常的罪魁禍?zhǔn)住?/span>舉個(gè)曾經(jīng)遇到過(guò)的例子,當(dāng)我們使用Label Encoder對(duì)類(lèi)別變量進(jìn)行編碼時(shí),測(cè)試集中可能存在未曾出現(xiàn)過(guò)的類(lèi)別,導(dǎo)致異常拋出。我們需要提高代碼的健壯性,以應(yīng)對(duì)未知測(cè)試集可能帶來(lái)的異常情況。

          2. Notebook Timeout

          根據(jù)不同比賽的時(shí)間限制不同,我們需要在指定的時(shí)間內(nèi)完成推理。為了避免超時(shí)錯(cuò)誤,我們需要合理估計(jì)模型的推理時(shí)間,根據(jù)測(cè)試集的長(zhǎng)度使用訓(xùn)練集來(lái)模擬推理(可以采用1/5、1/10的測(cè)試集數(shù)量的訓(xùn)練集以節(jié)約GPU時(shí)長(zhǎng))。超時(shí)錯(cuò)誤經(jīng)常發(fā)生在比賽后期多個(gè)模型進(jìn)行融合時(shí),我們應(yīng)該控制整個(gè)推理時(shí)長(zhǎng)在指定的時(shí)間內(nèi)。除此之外,我們可以對(duì)代碼進(jìn)行優(yōu)化,提升模型推理的速度,例如在Feedback比賽中,根據(jù)@hengck23在討論區(qū)所提到的,我們可以對(duì)text的長(zhǎng)度進(jìn)行排序,將長(zhǎng)度相仿的數(shù)據(jù)放入同個(gè)batch中,在batch中取最長(zhǎng)的token來(lái)進(jìn)行padding的方法以減少不必要的時(shí)間消耗(此方法提升推理速度約為6倍)。

          3. ?Notebook Exceeded Allowed Compute

          出現(xiàn)這種計(jì)算資源耗盡的問(wèn)題通常有兩種情況,一是顯存在推理時(shí)超出16G爆掉,二是內(nèi)存在推理時(shí)超出13G
          我近期遇到的主要是使用內(nèi)存超過(guò)容量,我們可以通過(guò)訓(xùn)練集制作與測(cè)試集大小相仿的數(shù)據(jù),模擬進(jìn)行推理,(模擬推理的時(shí)候可以采用輸出與模型推理生成的結(jié)果形狀尺度相同的隨機(jī)數(shù)以節(jié)約寶貴的GPU時(shí)間),并時(shí)刻檢查notebook的內(nèi)存情況。
          def?memory_used_to_str():
          ????#?https://stackoverflow.com/questions/61366458/how-to-find-memory-usage-of-kaggle-notebook
          ????pid?=?os.getpid()
          ????processs?=?psutil.Process(pid)
          ????memory_use?=?processs.memory_info()[0]?/?2.?**?30
          ????return?'ram?memory?gb?:'?+?str(np.round(memory_use,?2))
          我們需要及時(shí)清除中間變量,并且盡可能的將代碼調(diào)優(yōu)以使用更小的內(nèi)存空間。

          對(duì)于顯存超過(guò)容量的問(wèn)題,我們可以使用較小的batch_size, 并且在加載完前一個(gè)模型并且完成推理保存結(jié)果后,及時(shí)清除顯存,然后加載下一個(gè)模型。對(duì)于huggingface中預(yù)訓(xùn)練模型的加載,我們可以通過(guò)使用from_config而不是from_pretrained,后者可能會(huì)有異常的顯存泄露導(dǎo)致OOM(來(lái)自@閣老師的discuss)。

          4. Submission CSV Not Found

          該錯(cuò)誤是指比賽所指定的submission.csv文件未能找到。一種情況是我們生成的文件名不符合要求,注意生成的提交文件一定需要命名為submission.csv而不是其他;另外一種情況是notebook在運(yùn)行時(shí),遇到錯(cuò)誤停止運(yùn)行,未能生成提交文件。

          5. Submission Scoring Error

          我們需要按照比賽要求生成對(duì)應(yīng)的提交文件,保證該提交文件的行數(shù)以及列數(shù)滿足要求,保證輸出的內(nèi)容符合規(guī)范,以避免提交值無(wú)效,造成得分異常。

          6. Kaggle Error

          這種錯(cuò)誤情況非常罕見(jiàn),主要是平臺(tái)內(nèi)部導(dǎo)致的一些異常錯(cuò)誤,我們僅需重新提交運(yùn)行即可。
          如果在以上錯(cuò)誤排查后,仍然未能成功提交,請(qǐng)毫不猶豫地在Discuss區(qū)說(shuō)出自己遇到的問(wèn)題,熱心的社區(qū)網(wǎng)友會(huì)給予有用的建議。最后,祝大家上分快樂(lè),Happy Kaggling!

          ——END——

          ?

          ?

          瀏覽 366
          點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          評(píng)論
          圖片
          表情
          推薦
          點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  麻豆精品在线 | 青草久久茄子视频 | 黄色大片无码 | а√最新版在线天堂8 | 色婷婷伊人 |