클라우드 분류
[KT클라우드]ResNet
작성자 정보
- 관리자 작성
- 작성일
컨텐츠 정보
- 3,428 조회
- 0 추천
- 목록
본문
ResNet은 대표적인 image classification용 CNN 모델 중 하나입니다. 224×224 크기의 이미지를 입력 받아 풍선, 딸기, 고양이 등 사전에 정의된 여러 가지 사물 유형 중 하나로 분류합니다.
Hyperscale AI Computing 서비스를 사용해 ResNet-50 모델을 학습시키고, 또 학습된 모델을 사용해 실제 이미지를 분류할 수 있습니다. 학습/추론을 위한 PyTorch 스크립트와, 실제 모델 학습을 시켜 보기 위한 샘플 데이터(ImageNet 데이터베이스의 일부)를 제공합니다. ImageNet 데이터베이스와 호환되는 포맷의 데이터가 있다면 이를 사용해 ResNet-50 모델을 학습시킬 수 있습니다.
VM 생성 권장 사양
ResNet 학습을 위해서는 최소 다음 사양으로 VM을 생성하기를 권장합니다.
- OS: Ubuntu 18.04
- CPU: 8 vCore ※ 단, xlarge.96gb 이상의 AI 가속기를 사용할 경우 16 vCore
- 메인 메모리: 32 GB
- VM 생성 시 Hyperscale AI Computing 서비스가 제공하는 여러 가지 AI 가속기 모델 중 한 가지를 선택해야 합니다. AI 가속기 모델에 따라 ResNet-50 모델의 학습 시간이 달라집니다. 다음 계산 성능 측정치를 참고하여 AI 가속기 모델을 선택하십시오. 특히 ResNet-50 학습 용도로는 2xlarge.192gb 이하의 모델을 선택하시기를 권장합니다. 모델 구조 상 크기가 큰 AI 가속기에서 추가적인 성능 향상을 얻지 못할 수 있습니다. 너무 부담 가지실 필요는 없습니다 — VM을 생성한 후에도 언제든지 필요하다면 AI 가속기 모델을 다른 것으로 변경할 수 있습니다.
AI 가속기 모델 | 학습 처리 속도(초당 이미지 학습량) | 샘플 데이터 1회 학습(1 epoch)시 소요 시간 |
small.16gb | 215장 | 9분 57초 |
medium.32gb | 331장 | 6분 31초 |
large.48gb | 513장 | 4분 12초 |
large.64gb | 633장 | 3분 27초 |
xlarge.96gb | 910장 | 2분 25초 |
2xlarge.192gb | 1,247장 | 1분 59초 |
모델 코드 및 샘플 데이터 설치
VM에 접속하면 홈 디렉터리 밑에 install.sh 스크립트가 위치하고 있습니다. 이를 실행하여 ResNet-50 모델 코드 및 샘플 데이터를 설치하십시오. 설치에는 수 분 정도가 걸릴 수 있습니다. 설치 중에 VM 접속이 끊어지지 않도록 유의하십시오.
설치가 완료되면 홈 디렉터리 밑에 resnet, dataset/imagenet_100cls 디렉터리가 생성됩니다. resnet 디렉터리에는 ResNet-50 모델 학습/추론을 위한 PyTorch 스크립트가 들어 있습니다. dataset/imagenet_100cls 디렉터리에는 샘플 데이터로 사용 가능한 ImageNet 데이터베이스의 일부가 저장되어 있습니다.
설치가 정상적으로 이루어졌다면 홈 디렉터리 밑의 downloads 디렉터리는 지워도 무방합니다.
(pytorch) ubuntu@vm:~$ ls
install.sh sample
(pytorch) ubuntu@vm:~$./install.sh
- Installing resnet reference code...
(중략)
Install complete!
- Reference code of resnet : [ OK ] (Saved at /home/ubuntu/resnet)
- Dataset imagenet_100cls : [ OK ] (Saved at /home/ubuntu/dataset/imagenet_100cls)
- Link dataset : [ OK ] (Linked dataset at /home/ubuntu/resnet/data)
(pytorch) ubuntu@vm:~$ ls
dataset downloads install.sh sample resnet
(pytorch) ubuntu@vm:~$ ls dataset
imagenet_100cls
(pytorch) ubuntu@vm:~$ ls resnet
data dataset inference.py LICENSE.md model requirements.txt train.py utils.py
Hyperscale AI Computing 시스템 환경 확인
VM에는 기본적으로 Python 3.8, PyTorch 1.7.1 및 Hyperscale AI Computing 지원을 위한 플러그인이 설치되어 있습니다. 다음과 같이 실행하여 PyTorch 버전 및 Hyperscale AI Computing 플러그인 버전 정보를 확인할 수 있습니다.
(pytorch) ubuntu@vm:~$ python
Python 3.8.12 (default, Oct 12 2021, 13:49:34)
[GCC 7.5.0] :: Anaconda, Inc. on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import torch
>>> torch.__version__
'1.7.1'
>>> torch.version.moreh
'0.8.0'
>>> quit()
(pytorch) ubuntu@vm:~$
또한 터미널에서 moreh-smi 명령을 실행하여 VM에 연결된 AI 가속기 정보를 확인할 수 있습니다.
(pytorch) ubuntu@vm:~$ moreh-smi
+--------------------------------------------------------------------------------------------------------------+
| Moreh-SMI 0.8.0 Client Version: 0.8.0 Server Version: 0.8.0 |
+--------------------------------------------------------------------------------------------------------------+
| Device | Name | Token | Model | Memory Usage | Total Memory |
+==============================================================================================================+
| 1 | KT AI Accelerator | ZXhhbXBsZSB0b2tlbiBzdHI= | small.16gb | - | - |
+--------------------------------------------------------------------------------------------------------------+
Processes:
+----------------------------------------------------------+
| Device | Job ID | PID | Process | Memory Usage |
+==========================================================+
+----------------------------------------------------------+
ResNet 학습 시작하기
홈 디렉터리 아래의 resnet 디렉터리로 이동한 다음 train.py 스크립트를 실행하여 Resnet-50 모델 학습을 시작할 수 있습니다.
(pytorch) ubuntu@vm:~$ cd ~/resnet
(pytorch) ubuntu@vm:~/resnet$ python train.py --save-model model.pt -b 64
| INFO | __main__:parse_args:140 - PARAMETER | mode : train
| INFO | __main__:parse_args:140 - PARAMETER | load_checkpoint :
| INFO | __main__:parse_args:140 - PARAMETER | checkpoint_path : ./checkpoint
| INFO | __main__:parse_args:140 - PARAMETER | checkpoint_epoch_interval : 0
| INFO | __main__:parse_args:140 - PARAMETER | init_model :
...
[info] Requesting resources for KT AI Accelerator from the server...
[info] Initializing the worker daemon for KT AI Accelerator...
[info] [1/1] Connecting to resources on the server (192.168.00.00:00000)...
"무단배포금지: 클라우드포털(www.linux.co.kr)의 모든 강좌는 저작권에 의해 보호되는 콘텐츠입니다. 무단으로 복제하여 배포하는 행위는 금지되어 있습니다."
관련자료
-
링크
-
이전
-
다음
댓글 0
등록된 댓글이 없습니다.