Cara mengunggah file besar ke Google Colab dan notebook Jupyter jarak jauh

Jika Anda belum pernah mendengarnya, Google Colab adalah platform yang banyak digunakan untuk menguji prototipe ML pada GPU K80 gratisnya . Jika Anda pernah mendengarnya, kemungkinan besar Anda mencobanya. Tetapi Anda mungkin menjadi jengkel karena kerumitan yang terlibat dalam mentransfer kumpulan data yang besar.

Blog ini mengumpulkan beberapa metode yang menurut saya berguna untuk mengunggah dan mengunduh file besar dari sistem lokal Anda ke Google Colab . Saya juga menyertakan metode tambahan yang dapat berguna untuk mentransfer file yang lebih kecil dengan sedikit usaha. Beberapa metode dapat diperluas ke layanan notebook Jupyter jarak jauh lainnya , seperti Paperspace Gradient.

Mentransfer File Besar

Metode paling efisien untuk mentransfer file besar adalah dengan menggunakan sistem penyimpanan cloud seperti Dropbox atau Google Drive .

1. Dropbox

Dropbox menawarkan ruang penyimpanan gratis hingga 2GB per akun. Ini menetapkan batas atas jumlah data yang dapat Anda transfer setiap saat. Mentransfer melalui Dropbox relatif lebih mudah . Anda juga dapat mengikuti langkah yang sama untuk layanan notebook lainnya , seperti Paperspace Gradient .

Langkah 1: Arsipkan dan Unggah

Mengunggah sejumlah besar gambar (atau file) satu per satu akan memakan waktu sangat lama, karena Dropbox (atau Google Drive) harus menetapkan ID dan atribut satu per satu ke setiap gambar. Oleh karena itu, saya menyarankan Anda mengarsipkan dataset Anda terlebih dahulu.

Salah satu metode pengarsipan yang memungkinkan adalah dengan mengubah folder yang berisi dataset Anda menjadi file '.tar'. Cuplikan kode di bawah ini menunjukkan bagaimana mengubah folder bernama "Dataset" di direktori home menjadi file "dataset.tar", dari terminal Linux Anda.

tar -cvf dataset.tar ~/Dataset

Sebagai alternatif, Anda dapat menggunakan WinRar atau 7zip, apa pun yang lebih nyaman bagi Anda. Unggah kumpulan data yang diarsipkan ke Dropbox.

Langkah 2: Gandakan Repositori

Buka Google Colab dan mulai notebook baru.

Clone repositori GitHub ini. Saya telah memodifikasi kode asli sehingga dapat menambahkan token akses Dropbox dari buku catatan. Jalankan perintah berikut satu per satu .

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

Langkah 3: Buat Token Akses

Jalankan perintah berikut untuk melihat instruksi pengaturan awal.

!bash dropbox_uploader.sh

Ini akan menampilkan instruksi tentang cara mendapatkan token akses, dan akan meminta Anda untuk menjalankan perintah berikut. Ganti huruf tebal dengan token akses Anda, lalu jalankan:

!echo "INPUT_YOUR_ACCESS_TOKEN_HERE" > token.txt

Jalankan lagi ! Bash dropbox_uploader.sh untuk menautkan akun Dropbox Anda ke Google Colab. Sekarang Anda dapat mengunduh dan mengunggah file dari buku catatan.

Langkah 4: Mentransfer Isi

Unduh ke Colab dari Dropbox:

Jalankan perintah berikut. Argumennya adalah nama file di Dropbox.

!bash dropbox_uploader.sh download YOUR_FILE.tar

Unggah ke Dropbox dari Colab:

Jalankan perintah berikut. Argumen pertama (result_on_colab.txt) adalah nama file yang ingin Anda unggah. Argumen kedua (dropbox.txt) adalah nama yang Anda inginkan untuk menyimpan file seperti di Dropbox.

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

2. Google Drive

Google Drive menawarkan penyimpanan gratis hingga 15GB untuk setiap akun Google. Ini menetapkan batas atas jumlah data yang dapat Anda transfer setiap saat. Anda selalu dapat memperluas batas ini ke jumlah yang lebih besar. Colab menyederhanakan proses otentikasi untuk Google Drive.

Karena itu, saya juga menyertakan modifikasi yang diperlukan yang dapat Anda lakukan, sehingga Anda dapat mengakses Google Drive dari layanan notebook Python lainnya juga.

Langkah 1: Arsipkan dan Unggah

Seperti halnya Dropbox, mengunggah sejumlah besar gambar (atau file) satu per satu akan memakan waktu sangat lama, karena Google Drive harus menetapkan ID dan atribut satu per satu ke setiap gambar. Jadi saya sarankan Anda mengarsipkan dataset Anda terlebih dahulu.

Salah satu metode pengarsipan yang memungkinkan adalah dengan mengubah folder yang berisi dataset Anda menjadi file '.tar'. Cuplikan kode di bawah ini menunjukkan bagaimana mengubah folder bernama "Dataset" di direktori home menjadi file "dataset.tar", dari terminal Linux Anda.

tar -cvf dataset.tar ~/Dataset

Dan sekali lagi, Anda dapat menggunakan WinRar atau 7zip jika Anda mau. Unggah kumpulan data yang diarsipkan ke Google Drive.

Langkah 2: Instal dependensi

Buka Google Colab dan mulai notebook baru. Instal PyDrive menggunakan perintah berikut:

!pip install PyDrive

Impor pustaka dan metode yang diperlukan ( Impor tebal hanya diperlukan untuk Google Colab. Jangan impor jika Anda tidak menggunakan Colab).

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

Langkah 3: Otorisasi SDK Google

Untuk Google Colab:

Sekarang, Anda harus memberi otorisasi Google SDK untuk mengakses Google Drive dari Colab. Pertama, jalankan perintah berikut:

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.

Terimakasih telah membaca artikel ini! Tinggalkan tepuk tangan jika Anda tertarik! Jika Anda memiliki pertanyaan, Anda dapat menghubungi saya di media sosial atau mengirimi saya email (bharathrajn98 [at] gmail [dot] com).