محیط گوگل کولب امکان استفاده از GPU را به صورت رایگان میدهد و امکان نصب و کار با پکیج های مختلف زبان پایتون و فریم ورکهای مطرح یادگیری عمیق همانند Tensorflow, Keras, Pytorch,Fast.ai را فراهم میکند.
مراحل ایجاد یک نوت بوک
ابتدا مطمئن شوید که به حساب کاربری gmail خود متصل هستید . اگر حساب کاربری gmail ندارید اینجا را کلیک کنید.
* توجه :در تمام طول کار، باید ویپیان یا فیلترشکن روشن باشد.
از اینجا وارد محیط google drive شوید .
روش اول :
در محیط google drive یک پوشه ایجاد کنید :


پوشه ای که ایجاد کرده ایم را انتخاب میکنیم
با کیلک راست بر روی My drive فایل های نوت بوک وdataset.py [Upload files] و
Data_hoda_full را آپلود میکنیم.


با کلیک راست بر روی نوت بوک مانند شکل زیر،نوت بوک را با colaboratoryباز میکنیم :

بعد از باز شدن نوت بوک GPU را فعال میکنیم:


یک cell جدید ایجاد میکنیم :

کد زیر را در cell وارد میکنیم :
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
|
!apt-get install -y -qq software-properties-common python-software-properties module-init-tools !add-apt-repository -y ppa:alessandro-strada/ppa 2>&1 > /dev/null !apt-get update -qq 2>&1 > /dev/null !apt-get -y install -qq google-drive-ocamlfuse fuse from google.colab import auth auth.authenticate_user() from oauth2client.client import GoogleCredentials creds = GoogleCredentials.get_application_default() import getpass !google-drive-ocamlfuse -headless -id={creds.client_id} -secret={creds.client_secret} < /dev/null 2>&1 | grep URL vcode = getpass.getpass() !echo {vcode} | google-drive-ocamlfuse -headless -id={creds.client_id} -secret={creds.client_secret} !mkdir -p drive !google-drive-ocamlfuse drive print('Files in Drive:') !ls drive/ |
بعد از run شدن cell دو مرحله تایید اعتبار داریم ، در هر مرحله بر رو لینک کلیک کنید و کد رو در تکست باکس وارد کنید :

کدهای زیر را به نوت بوک اضافه میکنیم تا فایل ها از گوگل درایو به محیط colab اضافه شوند :
add cell+
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61
|
from google.colab import auth from googleapiclient.discovery import build import io , requests, os import sys auth.authenticate_user() from googleapiclient.discovery import build drive_service = build('drive', 'v3') def get_parent_folder(folder_name): page_token = None folder_array = [] query = "name='%s' and mimeType='application/vnd.google-apps.folder'" % folder_name while True: response = drive_service.files().list(q=query, spaces='drive', fields='nextPageToken, files(id, name)', pageToken=page_token).execute() for file in response.get('files', []): # Process change #print (file.get('name'), file.get('id')) folder_array.append({"name" : file.get('name'), "id" : file.get('id')}) page_token = response.get('nextPageToken', None) if page_token is None: break return folder_array def get_files_from_parent(parent_id): page_token = None folder_array = dict() query = "'%s' in parents" % parent_id while True: response = drive_service.files().list(q=query, spaces='drive', fields='nextPageToken, files(id, name)', pageToken=page_token).execute() for file in response.get('files', []): # Process change #print (file.get('name'), file.get('id')) folder_array.update({file.get('name'):file.get('id')}) page_token = response.get('nextPageToken', None) if page_token is None: break return folder_array def get_file_buffer(file_id, verbose=0): from googleapiclient.http import MediaIoBaseDownload request = drive_service.files().get_media(fileId=file_id) downloaded = io.BytesIO() downloader = MediaIoBaseDownload(downloaded, request) done = False while done is False: # _ is a placeholder for a progress object that we ignore. # (Our file is small, so we skip reporting progress.) progress, done = downloader.next_chunk() if verbose: sys.stdout.flush() sys.stdout.write('\r') percentage_done = progress.resumable_progress * 100/progress.total_size sys.stdout.write("[%-100s] %d%%" % ('='*int(percentage_done), int(percentage_done))) downloaded.seek(0) return downloaded |
add cell +
|
parent_folder = get_parent_folder('google colab') print(parent_folder) parent_folder[0]["id"] input_file_meta = get_files_from_parent(parent_folder[0]["id"]) print(input_file_meta) for file, id in input_file_meta.items(): downloaded = get_file_buffer(id, verbose=1) dest_file = os.path.join('/content/datalab/', file) print("\nprocessing %s data" % file) with open(dest_file, "wb") as out: out.write(downloaded.read()) print("Done %s" % dest_file) |
حالا یک دایرکتوری برای دیتاست ایجاد میکنیم :
add cell+
دیتاست هدی را به پوشه ی دیتاست اضافه میکنیم :
add cell+
|
!mv Data_hoda_full.mat !mv Data_hoda_full.mat \dataset |
روش دوم ایجاد نوت بوک :
وارد سایت colab.research.google.com میشویم :
NEW NOTEBOOK >>> NEW PYTHON3 NOTEBOOK

سپس از منو file نوت بوک جدید را آپلود میکنیم :


یک cell جدید ایجاد میکنیم سپس دستور زیر را وارد میکنیم :
فایل و پوشه ی دیتاست را آپلود میکنیم :
add cell+
|
from google.colab import files src = list(files.upload().values())[0] open('\dataset','wb').write(src) |
دیتاست هدی را به پوشه ی دیتاست اضافه میکنیم :
add cell+
|
!mv Data_hoda_full.mat !mv Data_hoda_full.mat \dataset |

روش سوم :
ابتدا ریپازیتوری خود را با دیتاست موردنظر و دلخواه روی گیت هاب ایجاد کنید
یا در صورت وجود ریپازیتوری آدرس آن را به صورت زیر یافته و با دستور زیر آن را در جوپیتر ران کنید

*توجه داشته باشید که فرمت دستورات لینوکسی میباشد.
|
! git clone --recursive [GITHUB LINK REPO] |
مثال :
|
! git clone --recursive https://github.com/Alireza-Akhavan/class.vision.git |
بعد از اتمام موفقیت آمیز بودن عملیات کلون از ریپازیتوری گیت هاب خروجی زیر را مشاهده میکنید:

در ادامه مسیر جاری را پیدا کرده و فایل های دریافت شده از مخزن را در مسیر دلخواه ( بعنوان مثال /content ) منتقل کنید:

در نهایت کد های اجرایی مورد نظر را در یک سلول جدید وارد کرده و برنامه را اجرا کنید:

بروزرسانی : 1397/11/06
شبکه های اجتماعی