[Colab] Google Colab (코랩) 재실행 초기화 해결방법
문제
colab은 새로 실행할 때마다 초기화된다.
→ 실행할 때마다 pip 로 설치한 라이브러리 및 패키지를 다시 설치한다..?NO
해결 방법
- colab에 구글 드라이브를 마운트 한다.
- 구글 드라이브의 특정 폴더와 colab 의 폴더를 link(연동) 한다(Symbolic link)
Colab에서 실행할 code
import os, sys
from google.colab import drive
drive.mount('/content/drive')
my_path = '/content/content_ObjectDetection'
save_path = '/content/drive/MyDrive/Colab Notebooks/content_ObjectDetection'
os.symlink(save_path, my_path)
sys.path.insert(0, my_path)
※ 코랩 최상단에 해당 코드를 붙여넣고, 코랩을 재실행하여 초기화 될 때마다 최초 1회 실행시켜주어야 합니다.
라이브러리 설치 방법: 경로 지정하기
- !pip 설치 시 --target=$my_path 경로 지정
!pip install --target=$my_path cython
wget 원하는 경로에 파일 다운로드 받기
%%shell
cd /content/content_ObjectDetection
wget https://www.cis.upenn.edu/~jshi/ped_html/PennFudanPed.zip
unzip PennFudanPed.zip
- 구글코랩의 default 경로(=현재 디렉토리 위치)는 /content 에서 돌아간다.
- 지금 실행되고 있는 .ipynb 확장자로 된 jupyter notebook 파일이 /content 에 있다고 생각하면 단순하다
- 리눅스 명령어 !pwd 로 현재 위치를 확인할 수 있다.
- /content 내에 설치되는 패키지, 학습데이터 등은 런타임을 다시 연결(코랩 재접속, cpu -> gpu로 런타임 유형 변경)시 리셋된다
- 따라서 /content 하위 폴더인 /content/content_ObjectDetection 을 만들어 사용하고, 이 폴더가 리셋 되더라도 구글 드라이브의 어떤 폴더와 연동되어 백업되게끔 한다.
- colab 에 사용할 라이브러리를 내 계정의 구글 드라이브에 저장하기
- save_path = '/content/drive/MyDrive/Colab Notebooks/content_ObjectDetection'
- ※구글 드라이브에서 해당 save_path 에 실제로 content_ObjectDetection 폴더를 생성한다
- 구글 드라이브의 폴더와 colab의 my_path = '/content/content_ObjectDetection' 폴더를 link 시키기
- ※colab 에서는 폴더를 직접 생성하지 않는다.
- 아래 명령어를 통해 실제로 구글드라이브의 save_path 에 존재하는 폴더와 연동되는 my_path 를 생성한다.
- os.symlink(save_path, my_path): my_path를 save_path와 링크 시킨다.
- 실제로 저장 되는 곳은 save_path 이지만, 시스템은 my_path에 있는 것 처럼 작동한다.
- ※ 따라서 이제부터는 예제 실행에서 모든 기본 경로를 /content/content_ObjectDetection 으로 설정해주어야 한다
- 명령어 1회 실행: %cd /content/content_ObjectDetection
- !pwd 로 해당 경로에 접근된 것을 확인할 수 있다.
저의 부족하고 잘못된 지식에 대한 피드백은 언제나 환영합니다.