đŸŽČ — mikrobloggeriet jals — jals-6 · jals-7 · jals-8

JALS-7

Jeg jobber nÄ med refactorering (igjen). MÄlet er Ä fjerne kompleksitet og Þke fleksibilitet i en flyt. Denne flyten kan beskrives som: hvordan lese et satellittbilde for:

  1. trening (ML)
  2. prediksjon i prod (inference)

Bildene er veldig store, og passer ikke i minnet (“CPU-” eller GPU-minne), sĂ„ vi chunker opp bildet i mindre vinduer. Kan sammenlignes med convolution, “bare ett lag ut”.

strided convolution

Se for dere at proposjonene er 10.000 x 10.000 for satellittbilde (blĂ„ rute) og 512 X 512 for hver chunk (vindu vi laster inn i minnet om gangen). Som i gif’en vil vi ogsĂ„ la hver chunk overlappe med den forrige med feks. 50 pixler.

Jeg fant et relativt nytt bibliotek TorchGeo som kan erstatte mye av den kompliserte koden. Denne har vi en del krav til for at den skal kunne stÞtte vÄr bruk.

  1. Den mÄ ikke vÊre tregere enn den eksisterende lÞsningen
  2. Den mÄ ikke stille strenge krav til oss pÄ feks formater eller fil-struktur
  3. Det mÄ vÊre enkelt Ä tweake den
  4. 
 jeg kommer pÄ fler og fler

Jeg gjorde noe de-risking ved Ä én-til-én teste med den eksisterende koden og fant fort ut at den kom til kort pÄ ett punkt. Den kan ikke lese bilder direkte fra en cloud bucket, slik som vÄr kode kan.

Her har heller ikke kildekoden lagt opp til at man kan tweake den sÄ lett. Jeg mÄ override hele init-metoden kun for Ä fjerne en sjekk pÄ om filen eksisterer. Selve lese-metoden klarer fint Ä lese fra bucket, men sjekken gjÞr ikke.

Da har jeg to alternativer:

  1. Overskrive init
  2. Lage en PR til biblioteket

I nummer 1. vil jo min implementasjon overskrive resten av logikken i init for alltid, og fremtidige oppdateringer i kildekoden gÄr tapt.

Det riktige er helt sikkert nummer 2. med en fiks som lÞser problemet for alle andre brukere av bibliotek. Men det tar tid, og jeg mÄ gjÞre det skikkelig og sette meg inn i nye ting jeg ikke kan. Samtidig sÄ har jeg jo en stor gjeld til open-source-miljÞet. Samtidig har jeg ikke fÄtt de-risket biblioteket fullt ut enda. Jeg tror jeg mÄ gÄ for 2 likevel, mÄ jeg ikke?