Kuidas üles laadida suuri faile Google Colabi ja Jupyteri kaugetesse sülearvutitesse

Foto autor Thomas Kelley saidil Unsplash

Kui te pole sellest veel kuulnud, on Google Colab platvorm, mida kasutatakse laialdaselt ML-i prototüüpide testimiseks oma tasuta K80 GPU-l. Kui olete sellest kuulnud, on tõenäoline, et andsite selle maha. Kuid võib-olla olete pahandanud suurte andmekogumite edastamise keerukuse tõttu.

Selles ajaveebis on kokku toodud mõned meetodid, mis on minu arvates kasulikud suurte failide üleslaadimiseks ja allalaadimiseks teie kohalikust süsteemist Google Colabisse. Lisasin ka täiendavaid meetodeid, mis on kasulikud väiksemate failide väiksema vaevaga ülekandmiseks. Mõningaid meetodeid saab laiendada ka muudele Jupyteri sülearvutiteenustele, näiteks Paperspace Gradient.

Suurte failide edastamine

Kõige tõhusam meetod suurte failide edastamiseks on kasutada pilvesalvestussüsteemi, näiteks Dropbox või Google Drive.

1. Dropbox

Dropbox pakub kuni 2 GB tasuta salvestusruumi konto kohta. See seab ülempiiri andmemahu hulgale, mida saate igal ajal edastada. Dropboxi kaudu ülekandmine on suhteliselt lihtsam. Samu samme saate teha ka muude sülearvutiteenuste, näiteks Paperspace Gradient puhul.

1. samm: arhiivimine ja üleslaadimine

Suure hulga piltide (või failide) eraldi üleslaadimine võtab väga kaua aega, kuna Dropbox (või Google Drive) peab igale pildile eraldi määrama ID-d ja atribuudid. Seetõttu soovitan kõigepealt oma arhiiv arhiveerida.

Üks võimalik arhiivimisviis on teisendada andmestikku sisaldav kaust .tar-faili. Allolev koodilõik näitab, kuidas teisendada oma Linuxi terminalist kodukataloogis kaust nimega Dataset failiks datet.tar.

tar -cvf dataset.tar ~ / andmestik

Teise võimalusena võite kasutada WinRari või 7zipi, olenemata sellest, mis on teile mugavam. Laadige arhiivitud andmekogu üles Dropboxi.

2. samm: kloonige hoidla

Avage Google Colab ja käivitage uus märkmik.

Kloonige see GitHubi hoidla. Olen algset koodi muutnud nii, et see võib lisada sülearvutist Dropboxi juurdepääsu loa. Täitke ükshaaval järgmised käsud.

! goni kloon https://github.com/thatbrguy/Dropbox-Uploader.git
cd Dropbox-Uploader
! chmod + x dropbox_uploader.sh

3. samm: looge juurdepääsuluba

Esialgsete häälestusjuhiste nägemiseks täitke järgmine käsk.

! bash dropbox_uploader.sh

See kuvab juhised pääsuluba hankimiseks ja palub teil täita järgmine käsk. Asendage rasvased tähed oma juurdepääsulubaga ja tehke järgmist:

! kaja "INPUT_YOUR_ACCESS_TOKEN_HERE"> token.txt

Käivitage! Bash dropbox_uploader.sh uuesti, et linkida oma Dropboxi konto Google Colabiga. Nüüd saate sülearvutist faile alla laadida ja üles laadida.

4. samm: edastage sisu

Laadige Dropboxist alla Colabi:

Käivitage järgmine käsk. Argument on faili nimi Dropboxis.

! bash dropbox_uploader.sh laadige alla YOUR_FILE.tar

Laadige Dropboxisse üles Colabist:

Käivitage järgmine käsk. Esimene argument (tulemus_on_kolab.txt) on faili nimi, mida soovite üles laadida. Teine argument (dropbox.txt) on nimi, mille soovite faili Dropboxis salvestada.

! bash dropbox_uploader.sh laadige tulemus_on_colab.txt dropbox.txt

2. Google Drive

Google Drive pakub iga Google'i konto jaoks kuni 15 GB tasuta salvestusruumi. See seab ülempiiri andmemahu hulgale, mida saate igal ajal edastada. Seda limiiti saate alati laiendada ka suurematele summadele. Colab lihtsustab Google Drive'i autentimisprotsessi.

Sellegipoolest olen lisanud vajalikud muudatused, et saaksite Google Drive'i juurde pääseda ka muudest Pythoni sülearvutiteenustest.

1. samm: arhiivimine ja üleslaadimine

Nii nagu Dropboxi puhul, võtab ka suure hulga piltide (või failide) eraldi üleslaadimine väga kaua aega, kuna Google Drive peab igale pildile eraldi määrama ID-d ja atribuudid. Seega soovitan kõigepealt oma arhiiv arhiveerida.

Üks võimalik arhiivimisviis on teisendada andmestikku sisaldav kaust .tar-faili. Allolev koodilõik näitab, kuidas teisendada oma Linuxi terminalist kodukataloogis kaust nimega Dataset failiks datet.tar.

tar -cvf dataset.tar ~ / andmestik

Ja jälle võite soovi korral kasutada WinRar või 7zip. Laadige arhiivitud andmestik üles Google Drive'i.

2. samm: installige sõltuvused

Avage Google Colab ja käivitage uus märkmik. Installige PyDrive järgmise käsu abil:

! pip install PyDrive

Importige vajalikud teegid ja meetodid (paksus kirjas importimine on vajalik ainult Google Colabi jaoks. Ärge importige neid, kui te ei kasuta Colabit).

impordi os
saidilt pydrive.auth importige GoogleAuth
saidilt pydrive.drive importige GoogleDrive
saidilt google.colab impordi autentimine
saidilt oauth2client.client importige GoogleCredentials

3. samm: volitage Google SDK

Google Colab:

Nüüd peate volitama Google SDK-d, et pääseda Colabist Google Drive'i. Esiteks täitke järgmised käsud:

auth.authenticate_user ()
gauth = GoogleAuth ()
gauth.credentials = GoogleCredentials.get_application_default ()
draiv = GoogleDrive (gauth)

Teile kuvatakse viip, nagu allpool näidatud. Võtme saamiseks klõpsake linki. Kopeerige ja kleepige see sisendkasti ja vajutage sisestusklahvi.

Viip kasutaja autentimiseks

Muude Jupyteri sülearvutiteenuste jaoks (nt Paperspace Gradient):

Mõned järgmistest toimingutest leiate PyDrive'i kiirkäivituse juhendist.

Minge API-de konsooli ja tehke oma projekt. Seejärel otsige Google Drive'i API-st, valige kirje ja klõpsake nuppu „Luba”. Valige vasakpoolsest menüüst mandaadid, klõpsake käsul Loo mandaat ja valige OAuthi kliendi ID. Peaksite nägema sellist menüüd nagu allpool näidatud pilt:

Valige rakenduse tüüp väärtuseks „Muu”. Pange sobiv nimi ja klõpsake nuppu "Salvesta".

Laadige alla äsja loodud OAuth 2.0 kliendi ID. Nimetage see ümber klient_secrets.json

Laadige see JSON-fail oma märkmikku üles. Selleks saate klõpsata märkmiku kodulehel oleval nupul „Laadi üles” (kuvatud allpool). (Märkus. Ärge kasutage seda nuppu oma andmestiku üleslaadimiseks, kuna see võtab väga palju aega.)

Üleslaadimisnupp on punane

Nüüd täitke järgmised käsud:

gauth = GoogleAuth ()
gauth.CommandLineAuth ()
draiv = GoogleDrive (gauth)

Ülejäänud protseduur sarnaneb Google Colabi protseduuriga.

4. samm: hankige oma faili ID

Luba edastatava faili lingi jagamine. Kopeeri link. Võite saada sellise lingi:

https://drive.google.com/open?id=YOUR_FILE_ID

Kopeerige ainult ülaltoodud lingi paks osa.

5. samm: edastage sisu

Laadige Google Drive'i alla Colabi:

Täitke järgmised käsud. Siin saadakse eelmises etapis YOUR_FILE_ID ja DOWNLOAD.tar on nimi (või tee), mille soovite failina salvestada.

download = drive.CreateFile ({'id': 'YOUR_FILE_ID'})
download.GetContentFile ('DOWNLOAD.tar')

Laadige Google Drive'i üles Colabist:

Täitke järgmised käsud. FILE_ON_COLAB.txt on siin Colabis oleva faili nimi (või tee) ja DRIVE.txt on nimi (või tee), mille soovite faili salvestada (Google Drive'is).

upload = drive.CreateFile ({'pealkiri': 'DRIVE.txt'})
upload.SetContentFile ('FILE_ON_COLAB.txt')
üleslaadimine.laadimine ()

Väiksemate failide edastamine

Mõnikord võiksite edastada vaid ühe csv-faili ja te ei soovi kogu seda vaeva läbi vaadata. Ärge muretsege - selleks on palju lihtsamaid meetodeid.

1. Google Colabi failide moodul

Google Colabil on oma sisseehitatud failide moodul, millega saate faile üles ja alla laadida. Saate selle importida, tehes järgmist:

saidilt google.colab impordifailid

Üleslaadimiseks:

Failide üleslaadimiseks teenusesse Google Colab kasutage järgmist käsku:

failid.üleslaadimine ()

Teile pakutakse GUI, mille abil saate valida üleslaaditavad failid. Seda meetodit ei soovitata kasutada suurte mõõtmetega failide jaoks. See on väga aeglane.

Alla laadida:

Google Colabist faili allalaadimiseks kasutage järgmist käsku:

files.download ('näide.txt')

See funktsioon töötab kõige paremini Google Chrome'is. Minu kogemuse kohaselt töötas see Firefoxis vaid üks kord, umbes 10 proovist.

2. GitHub

See on failide ülekandmise viis. GitHubi hoidla saate luua koos väikeste failidega, mida soovite edastada.

Pärast hoidla loomist saate selle Google Colabis lihtsalt kloonida. Seejärel saate muudatused kaughoidlasse suunata ja värskendused oma kohalikku süsteemi tõmmata.

Kuid pange tähele, et GitHubi kõva piirmäär on 25 MB faili kohta ja pehme limiit 1 GB hoidla kohta.

Täname, et lugesite seda artiklit! Kui teil on huvitav, jätke mõned plaksutamised! Kui teil on küsimusi, võite mind sotsiaalmeedias üles lüüa või mulle e-kirja saata (bharathrajn98 [at] gmail [dot] com).