- 인쇄
- PDF
Pytorch로 보행자 데이터셋에서 객체 탐지하기
- 인쇄
- PDF
VPC 환경에서 이용 가능합니다.
Pytorch로 보행자 객체를 탐지하는 프로그램을 작성하고 Singlebatch로 AI 앱을 제출하는 방법을 설명합니다.
Step 1. 계정 및 앱 생성
- Data Forest 계정을 생성하는 방법은 계정 생성 및 관리를 참고해 주십시오.
- 앱을 생성하는 방법은 앱 생성 및 관리를 참고해 주십시오.
Step 2. 데이터 셋 다운로드
이 예제에서는 모델 학습을 위해 Object Detection Combining Recognition and Segmentation. Liming Wang, Jianbo Shi, Gang Song, I-fan Shen. To Appear in ACCV 2007 연구에서 사용된 데이터를 사용합니다.
데이터 셋 다운로드에서 데이터 셋을 다운받아 주십시오.
Step 3. HDFS에 데이터 셋 업로드
사용자의 HDFS에 데이터 셋을 업로드하는 방법은 다음과 같습니다.
- Hue 앱에 로그인해 주십시오.
- Data Forest 계정명과 비밀번호로 로그인
- 화면 우측 상단의 [Upload] 버튼을 클릭해 주십시오.
- [Select Files] 버튼을 클릭해 주십시오.
- 파일을 업로드해 주십시오.
- HDFS에 파일이 업로드되었는지 확인해 주십시오.
Step 4. Workspace 생성
Workspace를 생성하는 방법은 다음과 같습니다.
네이버 클라우드 플랫폼 콘솔에서 Services > Big Data & Analytics > Data Forest 메뉴를 차례대로 클릭해 주십시오.
AI Forest > Workspaces > [워크스페이스 생성] > [Advanced 워크스페이스] 를 클릭해 주십시오.
Data Forest 계정을 선택하고 워크스페이스 이름을 설정한 뒤 워크스페이스 유형은 ’Singlebatch’를 선택해 주십시오.
도커 이미지는 Pytorch를 선택하고 이미지 버전은 v1.7로 선택해 주십시오.
참고Pytorch는 Python 프로그램용 오픈소스 머신 러닝 라이브러리입니다. 자세한 내용은 Pytorch 홈페이지를 참고해 주십시오.
GPU 모델의 이름, GPU 코어 개수, 메모리 용량을 선택해 주십시오.
이 예제에서는 기본값으로 진행합니다.
데이터 설정 영역에 정보를 입력하고 [추가] 버튼을 클릭해 주십시오.
- 입력
- Input Path: 컨테이너로 복사될 입력 데이터의 경로 입력, ‘/user/{username}/data_in’ 입력
- Input Container Local Path: 입력 데이터를 저장 할 컨테이너 경로 입력
- 출력
- Output Path: 결과물을 저장할 HDFS 경로 입력, ‘/user/{username}/data_out’ 입력
- Output Container Local Path: 출력 데이터가 존재하는 컨테이너의 경로 입력
- Overwrite: HDFS에 출력 데이터 저장 시 이미 파일이 있을 경우에 덮어 쓰기 여부 설정
- 입력
[다음] 버튼을 클릭해 주십시오. 워크스페이스 생성이 완료됩니다.
Step 5. 예제 코드 다운로드
예제를 수행하기 위해 필요한 예제 코드는 다음과 같습니다.
버전 | 파일 |
---|---|
Pytorch v1.7 | od-torch1.zip |
coco2017 데이터 셋으로 pre-training된 모델을 불러옵니다. 파라미터가 미리 학습된 모델을 불러와서 run.sh
에서 다운로드한 데이터 셋으로 fine tuning 합니다.
- cocodataset2017은 객체 검출 외에도 segmentation, captioning, key point 추출 등에 사용 가능한 데이터 셋입니다. 총 330K 개의 이미지 안에 80가지 카테고리로 분류할 수 있는 200K 개의 라벨링된 객체로 구성된 사물 데이터 셋입니다.
- fine tuning은 미리 학습된 weight를 목적에 맞는 데이터 셋으로 다시 학습시키는 것을 말합니다.
다음은 모델을 학습시키는 코드의 일부입니다.
...
dataset = PennFudanDataset('PennFudanPed', get_transform(train=True))
dataset_test = PennFudanDataset('PennFudanPed', get_transform(train=False))
# split the dataset in train and test set
indices = torch.randperm(len(dataset)).tolist()
dataset = torch.utils.data.Subset(dataset, indices[:-50])
dataset_test = torch.utils.data.Subset(dataset_test, indices[-50:])
# define training and validation data loaders
data_loader = torch.utils.data.DataLoader(
dataset, batch_size=2, shuffle=True, num_workers=1,
collate_fn=utils.collate_fn)
data_loader_test = torch.utils.data.DataLoader(
dataset_test, batch_size=1, shuffle=False, num_workers=1,
collate_fn=utils.collate_fn)
# get the model using our helper function
model = get_model_instance_segmentation(num_classes)
# move model to the right device
model.to(device)
print(device)
# construct an optimizer
params = [p for p in model.parameters() if p.requires_grad]
optimizer = torch.optim.SGD(params, lr=0.005,
momentum=0.9, weight_decay=0.0005)
lr_scheduler = torch.optim.lr_scheduler.StepLR(optimizer,
step_size=3,
gamma=0.1)
num_epochs = FLAGS.max_steps
for epoch in range(num_epochs):
train_one_epoch(model, optimizer, data_loader, device, epoch, print_freq=5)
lr_scheduler.step()
# evaluate on the test dataset
evaluate(model, data_loader_test, device=device)
print("done training")
torch.save(model.state_dict(), FLAGS.log_dir+'/model.pth')
print("saved model")
...
Step 6. Workspace Browser에 업로드
다운로드한 예제 파일의 압축을 풀고 Workspace Browser에 업로드해 주십시오.
- 네이버 클라우드 플랫폼 콘솔에서 Services > Big Data & Analytics > Data Forest 메뉴를 차례대로 클릭해 주십시오.
- AI Forest > Workspace Browser를 클릭해 주십시오.
- 계정 및 워크스페이스를 선택하고 [업로드] 버튼을 클릭해 주십시오.
- 업로드 창이 나타나면 'od-torch1.zip'의 압축을 푼 파일을 업로드 창에 끌어다 놓으십시오.
- [전송시작] 버튼을 클릭해 주십시오.
- 업로드가 완료되면 [확인] 버튼을 클릭해 주십시오.
Step 7. Singlebatch로 AI 앱 제출
Singlebatch로 AI 앱을 제출하는 방법은 다음과 같습니다.
- 네이버 클라우드 플랫폼 콘솔에서 Services > Big Data & Analytics > Data Forest > AI Forest > Workspace Browser 메뉴를 차례대로 클릭해 주십시오.
- 계정을 선택한 후 워크스페이스를 선택해 주십시오.
- 'run.sh'의 체크박스를 클릭한 후 [실행] 버튼을 클릭해 주십시오.
- 다음과 같이 정보를 입력해 주십시오.
- [확인] 버튼을 클릭해 주십시오. AI 앱이 실행됩니다.
Step 8. AI 앱 로그 및 결과 확인
AI 앱을 실행한 후 수행 로그 및 결과를 확인하는 방법은 다음과 같습니다.
- 네이버 클라우드 플랫폼 콘솔에서 Services > Big Data & Analytics > Data Forest > Apps 메뉴를 차례대로 클릭해 주십시오.
- 계정을 선택한 후 상세 정보를 확인할 앱을 클릭해 주십시오.
- 앱 상세 정보에서 Quick links > AppMaster UI 항목의 URL에 접속해 주십시오.
- 로그인 창이 나타나면 Data Forest 계정 생성 시 입력한 계정 이름과 비밀번호를 입력해 주십시오.
- Applications 메뉴에서 AI 앱 실행 시 입력한 앱 이름으로 수행된 ID를 찾아 클릭해 주십시오.
- 해당 애플리케이션 ID의 Logs를 클릭해 주십시오. 수행한 앱의 로그를 확인할 수 있습니다.
- AI 앱 결과물을 확인하려면
{출력 HDFS Path에 입력한 경로}/{--log_dir 인자로 전달한 값}
의 경로를 확인해 주십시오.