Trouble shooting(TS)

Colab에 Machinelearning과 Deeplearning을 위해 Dataset 불러오는 방법(Google Drive 연동)

Ddolgom 2022. 4. 14. 22:41
반응형
반응형

Colab에서 딥러닝을 위해서 Dataset을 불러오는 방법들을 소개하고자 한다.

사실 실무에서는 Local을 많이 활용하긴 하지만, 최근 상업용 Cloud를 임대해서 쓰는 추세이고 Colab은 상업용으로 쓰이기보다는 교육용 또는 Kaggle과 같이 대회를 위해서 많이 사용이 되는 것 같다.

 

코랩과 리눅스에 익숙하지 않는 사람에게 항상 사용 전에 머리를 아프게 하는 것이 있다.

 

가령 Deep learning으로 쓸 데이터셋을 불러오거나 할 때 어떻게 불러와야 하는지이다.

 

Dataset의 용량이 적으면 상관이 없다.

 

업로드 방법

코랩에서 좌측 폴더 모양 클릭 후 상단의 업로드 아이콘(노란색) 눌러서 매뉴얼로 업로드하고 옮기고자 하는 폴더에 드래그 형식으로 옮겨서 저장을 하면 된다.

 

하지만, 크리티컬 한 단점이 존재하게 되는데, 일정 시간이 지나면 런타임 연결이 끊겨 버린다는 것이다.

끊기면 업로드하였던 파일은 날아가버려서 새롭게 업로드를 하여야 한다.

 

경험상 1GB가 넘어가면 직접 업로드에도 시간이 오랫동안 걸리고 업로드 도중에 끊김 현상이 발생하여 깊은 화남을 유발한다.

 

(공식적으로 구글 코랩은 90분 동안 아무런 interaction이 없거나 하면 학습 수행을 못하고 끊겨 버린다.)

 

이러한 빡침을 없앨 수 있는 방법을 소개한다.

 

 

 

 

1. Google Drive 용량 증가

 

Google Drive는 무료로 15GB의 Cloud 용량을 제공하지만, 유로로 큰 단위의 용량을 제공한다.

15GB의 무료용량으로는 Computer Vision에서의 Deep learning 학습을 위해서는 굉장히 부족한 용량이다.

물론 일회성으로 15GB이하의 Dataset을 학습시킨다면 상관이 없으나, 

최소 100GB의 용량 구매를 통해 저장용량을 풍족하게 하고 나서 업로드 할수 있도록 만든다. 

(비용 대비 용량은 200GB가 가장 좋다.)

 

 

 

 

 

2. Colab에서 Drive Mount 시키기 

(2가지의 방법이 있다.)

 

* Mount 란?

어떤 파일 시스템을 디렉토리 일부에 넣어서 이용가능하게 하는 작업이다.
하나의 파티션을 하위 디렉토리처럼 쓰는 것을 마운트라고 한다.

 

 

a. Drive Mount 버튼 누르기 (노란색 부분, 누르고 나면 마운트를 시킬껀지 묻는 창이 뜨는데 Mount 버튼을 누르면 아래 노란색 아이콘과 같이 사선 표시가 뜨며 마운트가 완료된다.)

b. 코드 셀에 아래와 같은 코드를 넣는다.

from google.colab import drive
drive.mount('/content/gdrive')

똑같은 결과를 얻을 수 있다. 

 

 

 

 

 

3. 데이터셋을 URL로 가져오기

 

많은 고민을 하게 되는 부분인데, 직접 Local에 다운로드를 하여 Google Drive에 옮기는 경우는 훨씬 접근이 쉽다.

 

하지만, Local의 하드 용량이 거의 다 찼거나..(현재 내 문제) 번거로운 부분이 있어서 한 번에 해결하는 방안이 있다.

 

wget이라는 명령어로 web상의 파일을 바로 현재 디렉토리나 원하는 디렉토리에 저장하는 방법이다.

 

wget이라는 명령어는 Web GET의 약어다.

 

$ wget DOWNLOAD-URL

위와 같은 기본 꼴을 가지고 있는데,

 

구글 Colab에서는 다음과 같은 옵션을 같이 사용한다.      wget -P

!wget -P /content/drive/MyDrive/Colab_Notebooks/aiffel_data/Going_deeper/Going_deeper_12_Handmade_OCR/ https://www.dropbox.com/sh/i39abvnefllx2si/AAAbAYRvxzRp3cIE5HzqUw3ra?dl=0&preview=data_lmdb_release.zip # lmdb_release google drive로 다이렉트 다운

Colab에서는 리눅스 명령어를 쓰기 위해서는! (느낌표)를 맨 앞에 무조건 붙여주어야 한다.

-P 옵션은 파일들이 저장될 디렉토리를 지정한다.

 

위의 예시는 실제로 내 Local PC 하고 연결이 되어 있는 Google Drive안의 디렉토리로 하위 여러 폴더들을 거쳐서 최종 폴더인 Going_deeper_12_Handmade_OCR의 위치를 나타내고 그다음에는 저장하고자 하는 URL 링크를 그대로 붙여주면 된다.

직접 다운로드를 하는 것보다 속도도 빠르다. (21.74GB 용량 으...)

 

확인을 해보면

 

Going_deeper_12 폴더 안에 다운로드가 되어 있음을 알 수 있다.

 

위에서 소개하였던 일반적인 Colab업로드의 일시적임과는 다르게 Google drive의 서버가 작살나거나 내 유료 구독이 풀리지 않는 이상은 영구적으로 저장이 된다.

 

          윈도우 폴더에서도 확인 가능

 

 

 

 

그러고 나서 압축이 되어 있는 파일이면 풀어서 PATH를 지정하여 파일들의 경로를 지정하여서 코랩으로 불러와서 진행을 하면 된다.

 

실질적으로 머신러닝이나 딥러닝을 위해서는 Python 뿐만 아니라 Linux의 기본 명령어 사용법을 알고 디렉토리 위치 등도 알아야 진행을 할 수 있다.

 

실제 회사 업무에서도 데이터셋의 용량이 크고 많아지면 저장 위치가 헷갈리거나 어떻게 불러와야 하는지 골머리를 앓는 경우가 허다하고, 시작부터 헤매는 경우가 많은데, Colab을 사용할 시에는 이러한 방법으로 간단하게 데이터셋을 넷상에서 불러오면 직접 다운로드를 클릭하여 폴더를 찾아 옮기는 수고로움과 귀찮음을 덜어줄 수 있다.

 

 

 

 

 

 

반응형