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
'(인프런)딥러닝 컴퓨터비전 완벽 가이드_권철민' 카테고리의 다른 글
[인프런] 3. Object Detection과 Segmentation을 위한 주요 데이터 세트 및 구현 패키지 소개 그리고 OpenCV (0) | 2021.03.08 |
---|---|
[인프런] 2. Object Detection 의 이해 (0) | 2021.03.01 |