본문 바로가기

(인프런)딥러닝 컴퓨터비전 완벽 가이드_권철민

[인프런] 1. 구글 클라우드 실습 환경 구축하기(+코랩)

728x90

1. 가입

구글 클라우드 플랫폼에 접속하여 무료체험계정을 만든다.

 

2. GPU 서버 사용을 위한 계정 upgrade 및 GPU 서비스 신청

  • GPU 서버 사용을 위해서는 유료판으로 바꿀 필요가 있다. 
  • 먼저 인스턴스를 하나 만들어줘야 한다. 그래야 구글 api 서비스를 이용할 수 있음.
    • Compute Engine -> VM 인스턴스 에서 생성 
    • http 트랙은 체크한다. 
    • us west 1(oregon) 을 리전으로 설정한다. 해당 지역에 원하는 GPU 가 다 있음. 가격도 싸고.
  • 이 상태에서 gpu 인스턴스를 만들어보자.
    • 부팅디스크 설정에서 Deep learning on Linux를 설정하고 ..
  • 근데 이렇게 하면 인스턴스 생성에서 오류가 난다.
  • 이유는 무료체험판은 GPU 서버 할당량 limit 이 0(개) 이기 때문.
  • 따라서 유료판으로 바꾸고 할당량을 1로 만들어야한다.
    • 이 때, GPUS_ALL_REGION 과 원하는 GPU(예를 들어, NVIDIA_P100_GPUS) 모두를 0 ->1로 바꾸어야 함.
    • 방법은 IAM 관리자 -> 할당량 -> 원하는 서비스 검색 -> 할당량수정 -> 할당량 요청.
    • 메일로 할당량 수정 결과가 나옴.

cf) 할당량을 2 이상으로 요청할 수 있지만, reject 될 수 있어 1로만 요청

 

3. 구글 클라우드에서 GPU 서버 셋업하기

  • 다시 인스턴스를 생성해보자.
  • 설정은 us west1, p100(CPU 및 GPU 설정에서), cpu4, 15GB메모리로 일단 설정
  • 부팅디스크에서 Debian에서 DeepLearning on Linux(이것도 Debian 맞음)
  • 이렇게 인스턴스를 만들었으면, 외부 IP를 고정시켜줘야 한다. 
    • VPC 네트워크 -> 외부IP주소 -> 고정예약
    • 리전을 서버리전과 동일하게 맞추고, 연결대상도 해당 인스턴스와 맞춰준 후 예약한다.
  • 그리고 접속을 위해서 방화벽 규칙을 설정해야 한다.
    • 방화벽 -> 방화벽 규칙 만들기
    • 이름은 아무거나(8888포트를 열 것이므로 nb-8888)
    • 대상을 네트워크 모든 인스턴스로 바꾼다.
    • 소스 IP 범위는 0.0.0.0/0 으로 한다.
    • tcp에 체크하고 포트는 8888로 한 후 만들기.
  • 이젠 SSH 로 원격접속을 해야하므로 Putty 를 이용해서 key를 만든다.
    • putty를 다운로드 한다.
    • 다시 VM 인스턴스로 가서 접속하고자 하는 인스턴스를 클릭한다.
    • SSH key 설정을 위해 수정을 누르고, SSH 키 수정을 누르면 key를 넣는 공간이 나온다.
    • putty gen 앱으로 들어가서 generate key 를 한다.
    • key comment 를 내 아이디로 바꿔준다. 그리고 public key 를 복사해서 인스턴스의 SSH key를 넣는 공간에 넣어준다.
    • 그리고 save private key 해서 저장한다(public key를 저장해도 되고 안해도 됨).
    • 인스턴스도 수정을 끝내고 저장한다.
  • Putty 를 이용해서 접속한다.
    • Putty 앱에 들어가서 Host Name를 인스턴스의 외부 IP로 설정한다.
    • SSH -> Auth 를 누르고 private key를 Browse 하여 가져온다(아까 저장한 것).
    • 그리고 Host Name 을 (내아이디)@(IP) 이런식으로 설정하면 내 아이디를 안물어보고 바로 접속가능하다.
    • Saved Session 은 적당히 인스턴스 이름으로 설정한다.
    • Open
  • 정상적으로 접속한 후 nvidia driver 를 설치한다.

본래 GCP를 통해서 GPU 서버를 활용하려 했으나, 인스턴스 생성 자체가 쉽지 않았다.

따라서 코랩을 통해 실습을 진행할 것.

 

1. 구글드라이브 -> 코랩

  •  구글드라이브에서 코랩에 접속한다. 기본 tensorflow나 keras 는 설치가 되어있는데, 실습을 위해서 다운그레이드 해야하며 실습파일도 git 을 통해 다운받아야 함. 
  • 참고로 코랩은 입력이 없으면 커널이 다운되어서 실습파일, 텐서플로/케라스 재설치를 해야함.
    • 엄밀히 말하면 1차적으로 커널이 다운되면 괜찮지만, 시간이 더 지나면 2차적으로 VM container 가 다운되어서 다시 처음부터 코드를 수행해야 하는 것.
  • 코랩에서 나온 결과를 드라이브로 옮겨야하는데, 이를 위해서는 개인계정을 코랩에 인증하는 network mount 과정이 필요함.
    • mount 가 완료되면 코랩에서 /content/drive/My drive/data 로 접근가능.
  • GPU 가 필요한 경우 런타임->런타임유형->GPU 설정 해야함.

2. 런타임 다시시작&초기화

  • 전자는 1차적으로 커널만 다운시키고 재기동시키는 것.
  • 후자는 아예 VM 컨테이너를 다운시켜서 초기화.

3. OS command

  • 코랩에서 os command 는 %, ! 를 이용해 사용가능하다.
    • ex) %cd, !wget
  • 전자는 cd를 사용하여 디렉토리를 변경할 때 사용. 
  • ! 는 한 라인에서만 적용되기 때문에 전역적인 디렉토리를 관리할 떄 %를 활용.
  • 후자는 단일 명령어를 사용할 때.

4. Tensorflow & Keras 버젼 세팅

  • 특정 버젼으로 다운그레이드하였는데 restart 하라는 에러가 뜨면 '런타임 다시시작'을 하면 됨.

5. 구글 드라이브 연동

  • 아래 코드로 drive 에 마운트한다.
import os, sys
from google.colab import drive

drive.mount('/content/gdrive')
  • 그리고 나서 '/content/gdrive/My Drive/' 안에 파일을 넣는다.

 

질문과 비판은 언제나 환영입니다. 많이 꾸짖어주세요.

 

 

728x90