Всеки път, когато участвате в състезание или в каквото и да било, научавате нещо. Да опиша ли някои неща, които човек забелязва по време на това състезание, наречено G2Net.

  • Обучението с целия набор от данни дава по-добър резултат от обучението с подмножество. По-специално, тези данни не работят добре при обучение с подмножество, може би поради обхвата от данни, които не са обхванати.
  • Недостатъчната памет е голям проблем (OOM). По-конкретно, подходът е да се запази полученият масив (който е проектиран), съхранен на диск. Човек използва Zarr масиви, за да запази това. Въпреки това се натъкна на „недостатъчна памет“ поради пикове на паметта при зареждане, които надвишават RAM, дадена от Kaggle. Човек решава това по два начина. И накрая, значително се намалява броят на инженерните функции, следователно значително се намаляват изискванията за памет.
  • Също така, ако проблемът идва от запазването на прогнозите като pandas DataFrame, след това го запазете вместо това като масиви numpy и ги изтрийте, събирайте ги, преди следващият цикъл (епоха/цикъл на модела/други цикли) също да намали паметта. Но дори и така, човек някога е срещал недостатъчна памет и не може да измисли други методи по това време, освен промяна на инстанция, която има по-голяма RAM (от 12 GB за GPU инстанция на Kaggle (не е 16 GB, по някаква причина)).
  • scheduler.step()се извиква всяка стъпка за OneCyclePolicy вместо всяка епоха.

Грешки

Някои подобрения, които човек може да научи от конкуренцията, за които трябва да се замисли, включват:

  • Не е много упорит: през първия месец човек е активен с него. След като научиш доста, човек преминава към друго нещо. Може би следващия път човек може да остане в него по-дълго и да работи върху експериментирането на неща, които не са публично достъпни (споделени от други в платформата), или някои нови (глупави или не) идеи, за които може да се сети.
  • По-специално откритието: как да се направят нови открития, ученето от документи или идеи на други хора, как да се обмислят идеите, също може да бъде нещо, което помага много. По този начин може да се направи нещо извън това, което се смяташе за SOTA преди няколко години/месеци (това може все още да е уместно, но би могло да се справи по-добре, като се има предвид експоненциалното ускоряване на развитието в ML в днешно време).
  • Прегръщане на по-трудни предизвикателства, за разлика от малко по-предизвикателни. Разбира се, предизвикателствата все още са предизвикателства, но тези, които са в обхвата на възможностите ви, въпреки че увеличават предизвикателството, отнемат повече време, но ви позволяват да научите и най-бързо. Така че това е още един урок за мен.

Оставете съобщение, ако имате някакви мисли или съвети, които да ми предоставите; или споделете вашите мисловни цикли или идеи, ако желаете!

Благодаря ви за четенето и се забавлявайте.

P.S. В момента Търся работа.
Личен блог: wabinab.github.io (статиите са уникални от статии, публикувани в медия).