해결된 질문
21.05.09 11:05 작성
·
363
1
Raccoon 데이터 세트에서 GPU대신 CPU를 사용하려면 어떻게 해야하나요?
데스크탑에서 gpu로 학습을 완료하고 노트북cpu로 돌려보려고 합니다.
GPU, CPU 사용 설정을 어떻게 하는지 궁금합니다.
답변 2
1
2021. 05. 09. 12:40
노트북 CPU로 돌려 본다는게 학습이 아니라 Inference(predict)만 하신다는 건지요?
CPU는 학습이 오래 걸리니, 그렇게 하는걸로 이해하고 말씀 드리면,
1. Yolo 인지, RetinaNet 패키지를 사용하시는지 잘 모르겠지만, Yolo, RetinaNet 모두 Inference 모델을 h5 확장자를 가진 file로 만듭니다. Inference 모델을 만드는 것은 Yolo, Retinanet 강의 동영상을 참조하면 됩니다.
2. 노트북에 Tensorflow 1.13 ~15와 keras 설정을 합니다. 이때 tensorflow_gpu 가 아닌 tensorflow를 셋업합니다.
h5 확장자를 가진 file을 노트북으로 옮기고, inference 모델을 load하고 Raccoon Dataset을 inference 합니다.
2021. 05. 09. 16:48
attributeerror: module 'keras.backend' has no attribute 'control_flow_ops' 에러가 발생하여서 tf1.15.1에서 tf-gpu1.13.1, keras 2.2.4 버전으로 다운그레이드 하였습니다.
gpu 관련 설정(CUDA,cuDNN) 및 확인(device_lib.list_local_devices() 등등)은 모두 완료하였습니다.
2021. 05. 09. 16:58
annotation을 확인한 결과 라벨이 1~13으로 분포되어 있었습니다. coco dataset과 Google Open Image의 차이(0번부터 시작, 1번부터 시작)과 유사한 문제인것 같습니다. 어떻게 수정해야할지 질문드립니다.
0
2021. 05. 09. 17:06
해결했습니다.
KerasYolo_Raccoon_학습및_Detection.ipynb 의 train_yolo의 함수에서
num_classes = int(len(class_names)+1) 로 변경하니 작동하였습니다.
혹시 어떤 이유 때문인지 질문드려도 될까요?
2021. 05. 09. 16:46
네, kerasYOLO를 데스크탑 GPU로 학습하고 노트북 CPU로 Inference한다는 의미였습니다. 부족하게 적었는데 이해해주셔서 감사합니다.
강의 내용을 참고하여 다른 데이터셋으로 실습해보고 있습니다.
13개의 multi-classes를 가진 옷 데이터셋으로 실습중 아래와 같은 에러가 발생하였습니다.
(실습 중인 데이터셋 링크)
https://github.com/switchablenorms/DeepFashion2
num_classes를 어디에서 수정해야할지 질문드립니다.
-----------------------------------------
tiny_yolo_anchors는 yolo사이트에서 수정없이 가져와서 사용중이고,
yolov3_tiny.cfg에서 filter를 yolo의 윗부분 convolutional에서 (classes개수[13] +5)*3 으로 변경하였습니다.
그후 변경하지 않은 yolov3_tiny.weights와 수정한 yolov3_tiny.cfg를 함께 yolov3_tiny.h5로 변환하였습니다.