Eszközök, amelyeket naponta használok a tanulás és az alkotás fejlesztésére

Eltelt egy ideje, mióta utoljára kidolgoztam egy teljes ML projektet: az adatbányászat, a mintavétel, a stratégia, a tesztelés és az üzembe helyezés ismét újdonságnak tűnt számomra, amikor úgy döntöttem, hogy új gépi tanulási projektet építek, hogy integráljam azt, amit dolgoztam. kemény az elmúlt hat hónapban: decentralizált finanszírozás.

Megtapasztaltam a gépi tanulást, az idősor-központú ML-ben is, és nemrég kezdtem el mélyen ásni magát a pénzügyi gépi tanulásban. Újra kellett terveznem az eszközkészletemet, mivel a Jupyter notebookból álló konfigurációm nem volt elég hatékony számomra.

Ebben a cikkben azokról az eszközökről szeretnék beszélni, amelyeket jelenleg használok mind a tanuláshoz, mind az alkotáshoz, és amelyeket hihetetlenül hasznosnak találtam a termelékenységem növelésében.

További beszélgetés nélkül kezdjük az általam választott tudományos IDE-vel.

"Spyder"

Tudom, hogy ez nem újdonság. Valószínűleg már sokat hallott erről az IDE-ről. Valószínű, hogy még kipróbáltad, de úgy tűnt, semmi a Jupyter Notebookhoz képest. Végtére is, semmi sem kényelmesebb, mint a többnyelvű támogatás és egy könnyen megosztható és rendkívül interaktív felület.

Továbbá, ha a tanulásról beszélünk, fantasztikus, hogy egyetlen jegyzetfüzetbe integrálhatjuk a jegyzeteket és a kódot, igaz? Néha nem, legalábbis személyesen, de erről részletesebben a későbbi bekezdésekben fogok beszélni.

Minden ML projektnek jól definiált struktúrára van szüksége, és bár az interaktív notebookok hihetetlenül hatékonyak a tesztek során, hátrányt jelenthetnek. Tapasztalataim szerint elveszti a fókuszt a szervezett kód írása során, és azon kapja magát, hogy ugyanazt a kódcellát többször is futtatja, csak néhány változót felcserél, és abban reménykedik, hogy jobb eredményeket érhet el.

Míg a könyvtárszerű struktúrán történő kódolás segít kétszer gondolkodni, mielőtt a teljes kódot többször lefuttatná, megerősíti az elméleti koncepciókat, és tapasztalatom szerint sokkal gyorsabban találja meg a problémákat.

Ezenkívül, ha valóban teszteket kell végeznie, akkor van egy IPython-konzolja, amelyben az összes változó szinkronizálva van a kód változóival.

Akkor miért nem VS Code?

Remek kérdés. Szerintem ez a személyes preferenciákon és a tudományos fejlődésen kívül azon múlik, hogy mivel dolgozik. Például én is elsősorban frontend fejlesztéssel, backend fejlesztéssel és intelligens szerződések fejlesztésével foglalkozom. A tudományos fejlesztés nem hasonlít a fentiekhez, ezért szeretem, ha a két feladathoz külön felületek vannak. Ezenkívül a Spyder már mindent tartalmaz, ami a gépi tanuláshoz szükséges, anélkül, hogy bővítményeket kellene telepítenie.

"TexPad" és "Gummi"

Térjünk vissza a tanuláshoz. Szeretek jegyzetelni, és valószínűleg te is. Ahogy korábban említettem, a Jupyter lehetővé teszi szöveges megjegyzések integrálását a kódba. Például, ha egy adott mintavételi technikát szeretne megismerni, rendelkezhet egy jegyzetfüzettel, amelybe beírhatja a szűrő definícióját vagy képletét, majd beilleszthet egy kódcellát, amely a szűrőt működés közben mutatja.

Sok olyan eset van, amikor ez a technika lenyűgöző eredményeket hoz. Például, ha dolgozott már frontend fejlesztéssel, és volt lehetősége megnézni a „Mozilla’s Developer Docs”-t, akkor már tudja, hogy „azok a példák” az elején sokat segítenek.

De azt tapasztaltam, hogy jobban elválasztom a kódon kívüli fogalmakat a kódmegvalósításoktól. Segített jobban összpontosítani a közép- és haladó szintű fogalmak tanulása vagy átdolgozása során.

Mivel a legtöbb (ha nem az összes) ML-fogalomhoz matematikai komponens szükséges, úgy döntöttem, hogy a LaTeX-et használom. Pontosabban TexPad és Gummi.

MacBook laptoppal és Linux PC-vel is dolgozom, Mac-hez TexPad, Linuxos gépemhez pedig Gummi. Mindkettőben közös, hogy élő LaTeX szerkesztők, és mindkettő hasznos funkciókkal rendelkezik a munkafolyamat felgyorsítására, például parancsikonok vagy automatikus kiegészítés (csak TexPadon).

A LaTeX-et nehéz megtanulni, de "ezt a dokumentációt" találtam útmutatásul. Remélhetőleg neked is segíthet.

"Narancs3"

Az Orange3 lehetővé teszi az adatok intuitív megjelenítését és elemzését egy egyszerű felhasználói felületen keresztül. Létrehozhat munkafolyamatokat az adatokhoz, és egyidejűleg megjelenítheti azokat különböző nézőpontokból.

A felület könnyen használható, és meglehetősen kibővített eszköztárral rendelkezik, amely segíthet az adatok kezelésében. Jelenleg ezt az eszközt kizárólag vizualizációs célokra használom, mivel szívesebben végzek adat-előkészítési műveleteket a kódommal.

Alig két hete fedeztem fel ezt az eszközt, így az előbbivel kapcsolatos ismereteim nem bővültek. De azon kapom magam, hogy gyakran használom, különösen olyan adatkészletek megjelenítésére, amelyekkel korábban nem dolgoztam első kézből.

"Storj"

Az adatkészletek sok helyet foglalnak el, különösen akkor, ha nyers adatokról van szó, és még nem kezelték őket. Tárolhatja őket a merevlemezén, de nem lesz szép, ha nincs külső HDD/SSD, amely csak az adatkészletek tárolására szolgál. Inkább felhőtárhelyen vagy jobb esetben decentralizált felhőtárhelyen (DCS) tárolom az adatkészleteimet.

A Storj jól teszi a dolgát. Íme néhány ok, amiért ezt a platformot választottam:

  • Könnyen elérheti közvetlenül az objektum nyers adatait.
  • 150 GB szabad tárhelyet kap.
  • Decentralizált, ami azt jelenti, hogy adatait különböző csomópontokon tárolják, és mindig elérhetők lesznek. Ezenkívül egy másik biztonsági réteget is bevezet.
  • A fejlesztőkre összpontosít.

A projektjeim adatkészleteit Storj-gyűjtők létrehozásával rendezem, amelyeket aztán bármikor meghívok, amikor szükségem van az adataimra.

Végső gondolatok

Remélem, hasznosnak találta ezt a cikket, és úgy döntött, hogy kipróbálja legalább az egyik eszközt. Ha jobb alternatívákat talált a javasolt projektekhez, ne habozzon leírni őket a megjegyzés rovatba.

Újrafutóz

  • Spyder → miért érdemes átgondolni a notebookok használatát, és kipróbálni ezt az IDE-t.
  • Gummi és TexPad → az általam talált legjobb LaTeX szerkesztők, amelyeket matematikai jegyzetek készítésére és a tanulási folyamat javítására terveztek.
  • Orange3 → egy adatbányászati ​​keretrendszer, amely lehetővé teszi az adatok kezelését egy könnyen használható felületen keresztül.
  • Storj → decentralizált felhőtárhely elsősorban fejlesztőknek. Itt tárolhatja adatkészleteit.

Köszönöm hogy elolvastad!