Boostcamp AI tech 3기/개념 이해

[Week02] Pytorch - 3강 Pytorch 기본 환경 세팅 : colab에서 ssh 연결해 vscode 실행하기

mcdn 2022. 1. 24. 15:09
반응형
# Pytorch Project Template


[![Open In Colab](https://colab.research.google.com/assets/colab-badge.svg)](https://colab.research.google.com/github/BoostcampAITech/lecture-note-python-basics-for-ai/blob/main/codes/pytorch/07_torch-study/pytorch_project.ipynb)

!pip3 install torch
!pip3 install torchvision



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

!git clone https://github.com/victoresque/pytorch-template

!ls

%cd /content/pytorch-template

!python new_project.py MNIST-example

NGROK_TOKEN = '1mn46f5zchuMTvgUwv7MECrVYy1_7rVtSq7XzXgCd1qZB6CBE' # ngrok 토큰
PASSWORD = 'upstage' # 비밀번호 설정

!pip install colab-ssh

from colab_ssh import launch_ssh
launch_ssh(NGROK_TOKEN, PASSWORD)

class Test(object):
    def __getitem__(self, items):
        print (type(items), items)

# Driver code
test = Test()
test[5]
test[5:65:5]
test['GeeksforGeeks']
test[1, 'x', 10.0]
test['a':'z':2]
test[object()]

 

초기 단계에서는 대화식 개발 과정이 유리 -> 학습과정과 디버깅 등 지속적인 확인.

배포 및 공유 단계에서는 notebook 공유의 어려움 -> 쉬운 재현의 어려움, 실행순서 꼬임.

DL 코드도 하나의 프로그램이기 떄문에 개발 용이성+유지보수 향상 필요.

 

코드도 레고 블록처럼, OOP + 모듈 → 프로젝트

다양한 프로젝트 템플릿이 존재

사용자 필요에 따라 수정하여 사용

실행, 데이터, 모델, 설정, 로깅, 지표, 유틸리티 등 다양한 모듈들을 분리하여 프로젝트 템플릿화

PyTorch Template 추천 repository

https://github.com/victoresque/pytorch-template

https://github.com/FrancescoSaverioZuppichini/PyTorch-Deep-Learning-Template

https://github.com/PyTorchLightning/deep-learning-project-template

https://github.com/davinnovation/pytorch-boilerplate

 

여기서는 pytorch-template으로 진행해봄

 

모듈구성

git clone https://github.com/victoresque/pytorch-template

cd pytorch-template

## 해당 명령어로 같은 구조를가진 MyProject 폴더를 생성
python new_project.py MyProject

cd MyProject

python train.py -c config.json

로컬에서 한번 해볼 떄 쓴 명령어 

train.py가 잘 되는 것을 볼 수 있음 

 

 

작업 순서

1. colab에 들어간다. 

 

2. torch, torchvision 패키지를 설치한다. 

!pip3 install torch

!pip3 install torchvision

 

 

3. mount

from google.colab import drive

drive.mount('/content/drive')

 

4. 보고자 하는 레포지토리 깃클론

!git clone https://github.com/victoresque/pytorch-template

 

!ls

 

5. 해당 폴더 위치로 이동

%cd /content/pytorch-template

 

6. 프로젝트 만들기 MNIST-example이 이름 

!python new_project.py MNIST-example

 

7. ngrok 사이트 가서 회원가입 하면 나오는 autotoken을 바로 복수해서 가져온다. 

NGROK_TOKEN = '1mn46f5zchuMTvgUwv7MECrVYy1_7rVtSq7XzXgCd1qZB6CBE' # ngrok 토큰

PASSWORD = 'upstageupstage' # 비밀번호 설정

 

8. colab-ssh 패키지 설치 

!pip install colab-ssh

 

9. launch_ssh 실행. 

from colab_ssh import launch_ssh

launch_ssh(NGROK_TOKEN, PASSWORD)

 

10. 토큰이 맞으면

Warning: Due to some issues with ngrok on Google Colab, reported in the issue https://github.com/WassimBenzarti/colab-ssh/issues/45, we highly recommend that update your code by following this documentation 
https://github.com/WassimBenzarti/colab-ssh#
getting-started Successfully 
	running 8.tcp.ngrok.io:14273 
    [Optional] You can also connect with VSCode SSH Remote extension using this configuration: Host google_colab_ssh HostName 8.tcp.ngrok.io User root Port 14273

8.tcp.ngrok.io

Port:14273

이렇게 뜬다. 

 

12. remote -ssh 확장자를 설치하고 

 

13. MAC에서는 cmd + shift + P를 해서 

Remote - SSH : Add New SSH Host를 클릭 

ssh root@8.tcp.ngrok.io -p 14273

 

pid가 아니라 port 번호

 

그리고 connect to ssh host를 해서 방금 더한 8.tcp~를 누르면 된다. 

만약 코랩에서 돌아가고 있으면 

잘 들어가진다. 

 

finger print 허용하고 

패스워드는 아까 토큰 밑에 썼던 그거 쓰면 된다. (로그인 패스워드 노노)

 

그렇게 되면 접속한 거임! 

폴더 열기하고 /content/(GITREPOSITORY)를 들어가면됨

우리의 예시로는 /content/pytorch-template에 들어가면 된다. 

 

반응형