Πώς να ανεβάσετε μεγάλα αρχεία στο Google Colab και σε απομακρυσμένα σημειωματάρια Jupyter

Εάν δεν το έχετε ακούσει, το Google Colab είναι μια πλατφόρμα που χρησιμοποιείται ευρέως για τη δοκιμή πρωτότυπων ML στην δωρεάν K80 GPU . Εάν έχετε ακούσει γι 'αυτό, οι πιθανότητες είναι ότι το έχετε δώσει. Αλλά μπορεί να έχετε εξοργιστεί λόγω της πολυπλοκότητας που συνεπάγεται η μεταφορά μεγάλων συνόλων δεδομένων.

Αυτό το ιστολόγιο συγκεντρώνει μερικές από τις μεθόδους που έχω βρει χρήσιμες για τη μεταφόρτωση και τη λήψη μεγάλων αρχείων από το τοπικό σας σύστημα στο Google Colab . Έχω συμπεριλάβει επίσης πρόσθετες μεθόδους που μπορούν να είναι χρήσιμες για τη μεταφορά μικρότερων αρχείων με λιγότερη προσπάθεια. Ορισμένες από τις μεθόδους μπορούν να επεκταθούν σε άλλες απομακρυσμένες υπηρεσίες φορητού υπολογιστή Jupyter, όπως το Paperspace Gradient.

Μεταφορά μεγάλων αρχείων

Η πιο αποτελεσματική μέθοδος μεταφοράς μεγάλων αρχείων είναι να χρησιμοποιήσετε ένα σύστημα αποθήκευσης cloud όπως το Dropbox ή το Google Drive .

1. Dropbox

Το Dropbox προσφέρει δωρεάν χώρο αποθήκευσης έως 2 GB ανά λογαριασμό. Αυτό θέτει ένα ανώτατο όριο στην ποσότητα δεδομένων που μπορείτε να μεταφέρετε ανά πάσα στιγμή. Η μεταφορά μέσω Dropbox είναι σχετικά πιο εύκολη . Μπορείτε επίσης να ακολουθήσετε τα ίδια βήματα για άλλες υπηρεσίες φορητού υπολογιστή , όπως το Paperspace Gradient .

Βήμα 1: Αρχειοθέτηση και μεταφόρτωση

Η μεμονωμένη μεταφόρτωση μεγάλου αριθμού εικόνων (ή αρχείων) θα διαρκέσει πολύ χρόνο, καθώς το Dropbox (ή το Google Drive) πρέπει να εκχωρήσει μεμονωμένα αναγνωριστικά και χαρακτηριστικά σε κάθε εικόνα. Επομένως, σας συνιστούμε να αρχειοθετήσετε πρώτα το σύνολο δεδομένων σας.

Μια πιθανή μέθοδος αρχειοθέτησης είναι να μετατρέψετε το φάκελο που περιέχει το σύνολο δεδομένων σας σε αρχείο «.tar». Το παρακάτω απόσπασμα κώδικα δείχνει πώς να μετατρέψετε ένα φάκελο με το όνομα "Dataset" στον αρχικό κατάλογο σε αρχείο "dataset.tar", από το τερματικό Linux.

tar -cvf dataset.tar ~/Dataset

Εναλλακτικά, μπορείτε να χρησιμοποιήσετε WinRar ή 7zip, ό, τι είναι πιο βολικό για εσάς. Ανεβάστε το αρχειοθετημένο σύνολο δεδομένων στο Dropbox.

Βήμα 2: Κλωνοποιήστε το αποθετήριο

Ανοίξτε το Google Colab και ξεκινήστε ένα νέο σημειωματάριο.

Κλωνοποιήστε αυτό το αποθετήριο GitHub. Έχω τροποποιήσει τον αρχικό κώδικα έτσι ώστε να μπορεί να προσθέσει το διακριτικό πρόσβασης Dropbox από το σημειωματάριο. Εκτελέστε τις ακόλουθες εντολές μία προς μία .

!git clone //github.com/thatbrguy/Dropbox-Uploader.git cd Dropbox-Uploader !chmod +x dropbox_uploader.sh

Βήμα 3: Δημιουργήστε ένα διακριτικό πρόσβασης

Εκτελέστε την ακόλουθη εντολή για να δείτε τις αρχικές οδηγίες εγκατάστασης.

!bash dropbox_uploader.sh

Θα εμφανίσει οδηγίες σχετικά με τον τρόπο απόκτησης του διακριτικού πρόσβασης και θα σας ζητήσει να εκτελέσετε την ακόλουθη εντολή. Αντικαταστήστε τα έντονα γράμματα με το διακριτικό πρόσβασης και, στη συνέχεια, εκτελέστε:

!echo "INPUT_YOUR_ACCESS_TOKEN_HERE" > token.txt

Εκτελέστε ξανά ! Bash dropbox_uploader.sh για να συνδέσετε τον λογαριασμό σας Dropbox με το Google Colab. Τώρα μπορείτε να κατεβάσετε και να ανεβάσετε αρχεία από το σημειωματάριο.

Βήμα 4: Μεταφορά περιεχομένων

Λήψη στο Colab από το Dropbox:

Εκτελέστε την ακόλουθη εντολή. Το όρισμα είναι το όνομα του αρχείου στο Dropbox.

!bash dropbox_uploader.sh download YOUR_FILE.tar

Μεταφόρτωση στο Dropbox από το Colab:

Εκτελέστε την ακόλουθη εντολή. Το πρώτο όρισμα (result_on_colab.txt) είναι το όνομα του αρχείου που θέλετε να ανεβάσετε. Το δεύτερο όρισμα (dropbox.txt) είναι το όνομα που θέλετε να αποθηκεύσετε το αρχείο όπως στο Dropbox.

!bash dropbox_uploader.sh upload result_on_colab.txt dropbox.txt

2. Google Drive

Το Google Drive προσφέρει έως και 15 GB δωρεάν αποθηκευτικό χώρο για κάθε λογαριασμό Google. Αυτό θέτει ένα ανώτατο όριο στην ποσότητα δεδομένων που μπορείτε να μεταφέρετε ανά πάσα στιγμή. Μπορείτε πάντα να επεκτείνετε αυτό το όριο σε μεγαλύτερα ποσά. Το Colab απλοποιεί τη διαδικασία ελέγχου ταυτότητας για το Google Drive.

Τούτου λεχθέντος, συμπεριέλαβα επίσης τις απαραίτητες τροποποιήσεις που μπορείτε να εκτελέσετε, ώστε να έχετε πρόσβαση στο Google Drive και από άλλες υπηρεσίες φορητού υπολογιστή Python.

Βήμα 1: Αρχειοθέτηση και μεταφόρτωση

Όπως και με το Dropbox, η αποστολή μεγάλου αριθμού εικόνων (ή αρχείων) μεμονωμένα θα διαρκέσει πολύ πολύ, καθώς το Google Drive πρέπει να εκχωρήσει μεμονωμένα αναγνωριστικά και χαρακτηριστικά σε κάθε εικόνα. Προτείνω λοιπόν να αρχειοθετήσετε πρώτα το σύνολο δεδομένων σας.

Μια πιθανή μέθοδος αρχειοθέτησης είναι να μετατρέψετε το φάκελο που περιέχει το σύνολο δεδομένων σας σε αρχείο «.tar». Το παρακάτω απόσπασμα κώδικα δείχνει πώς να μετατρέψετε ένα φάκελο με το όνομα "Dataset" στον αρχικό κατάλογο σε αρχείο "dataset.tar", από το τερματικό Linux.

tar -cvf dataset.tar ~/Dataset

Και πάλι, μπορείτε να χρησιμοποιήσετε το WinRar ή το 7zip εάν προτιμάτε. Ανεβάστε το αρχειοθετημένο σύνολο δεδομένων στο Google Drive.

Βήμα 2: Εγκατάσταση εξαρτήσεων

Ανοίξτε το Google Colab και ξεκινήστε ένα νέο σημειωματάριο. Εγκαταστήστε το PyDrive χρησιμοποιώντας την ακόλουθη εντολή:

!pip install PyDrive

Εισαγάγετε τις απαραίτητες βιβλιοθήκες και μεθόδους (Οι έντονες εισαγωγές απαιτούνται μόνο για το Google Colab. Μην τις εισαγάγετε εάν δεν χρησιμοποιείτε το Colab).

import os from pydrive.auth import GoogleAuth from pydrive.drive import GoogleDrive from google.colab import auth from oauth2client.client import GoogleCredentials

Βήμα 3: Εξουσιοδότηση SDK Google

Για το Google Colab:

Τώρα, πρέπει να εξουσιοδοτήσετε το SDK Google για πρόσβαση στο Google Drive από το Colab. Αρχικά, εκτελέστε τις ακόλουθες εντολές:

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

You will get a prompt as shown below. Follow the link to obtain the key. Copy and paste it in the input box and press enter.

For other Jupyter notebook services (Ex: Paperspace Gradient):

Some of the following steps are obtained from PyDrive’s quickstart guide.

Go to APIs Console and make your own project. Then, search for ‘Google Drive API’, select the entry, and click ‘Enable’. Select ‘Credentials’ from the left menu, click ‘Create Credentials’, select ‘OAuth client ID’. You should see a menu such as the image shown below:

Set “Application Type” to “Other”. Give an appropriate name and click “Save”.

Download the OAuth 2.0 client ID you just created. Rename it to client_secrets.json

Upload this JSON file to your notebook. You can do this by clicking the “Upload” button from the homepage of the notebook (Shown Below). (Note: Do not use this button to upload your dataset, as it will be extremely time consuming.)

Now, execute the following commands:

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

The rest of the procedure is similar to that of Google Colab.

Step 4: Obtain your File’s ID

Enable link sharing for the file you want to transfer. Copy the link. You may get a link such as this:

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

Copy only the bold part of the above link.

Step 5: Transfer contents

Download to Colab from Google Drive:

Execute the following commands. Here, YOUR_FILE_ID is obtained in the previous step, and DOWNLOAD.tar is the name (or path) you want to save the file as.

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

Upload to Google Drive from Colab:

Execute the following commands. Here, FILE_ON_COLAB.txt is the name (or path) of the file on Colab, and DRIVE.txt is the name (or path) you want to save the file as (On Google Drive).

upload = drive.CreateFile({'title': 'DRIVE.txt'}) upload.SetContentFile('FILE_ON_COLAB.txt') upload.Upload()

Transferring Smaller Files

Occasionally, you may want to pass just one csv file and don’t want to go through this entire hassle. No worries — there are much simpler methods for that.

1. Google Colab files module

Google Colab has its inbuilt files module, with which you can upload or download files. You can import it by executing the following:

from google.colab import files

To Upload:

Use the following command to upload files to Google Colab:

files.upload()

You will be presented with a GUI with which you can select the files you want to upload. It is not recommended to use this method for files of large sizes. It is very slow.

To Download:

Use the following command to download a file from Google Colab:

files.download('example.txt')

This feature works best in Google Chrome. In my experience, it only worked once on Firefox, out of about 10 tries.

2. GitHub

This is a “hack-ish” way to transfer files. You can create a GitHub repository with the small files that you want to transfer.

Once you create the repository, you can just clone it in Google Colab. You can then push your changes to the remote repository and pull the updates onto your local system.

But do note that GitHub has a hard limit of 25MB per file, and a soft limit of 1GB per repository.

Σας ευχαριστούμε που διαβάσατε αυτό το άρθρο! Αφήστε μερικά χειροκρότημα αν σας ενδιαφέρει! Εάν έχετε απορίες, θα μπορούσατε να με χτυπήσετε στα κοινωνικά μέσα ή να μου στείλετε ένα email (bharathrajn98 [at] gmail [dot] com).