작성
·
332
0
강의를 듣다 좀 복잡해져서 이해가 가지 않는데 강의를 다시 들으면서 찾아봐도 어려워 문의 드립니다.
1) 라쿤 데이터 학습 할 때 아래와 같은 부분이 있는데요,
#yolov3.weights를 keras-yolo3에서 사용할 수 있도록 yolo.h5 로 변환
!python convert.py yolov3.cfg yolov3.weights model_data/yolo.h5
여기에서 말하는 yolov3.cfg 파일은 keras-yolov3 다운로드 하면 폴더 내에 있는 yolov3.cfg 파일이 맞나요? (filter 255, class 80으로 되어 있는..)
yolove.weights 는 선생님 깃허브에서 받았습니다.(https://github.com/chulminkw/DLCV/releases/download/1.0/yolov3.weights)
yolo.h5를 만드는 과정에서 계속 에러가 나거나 잘 만들어져도 학습 시 val_loss: nan 으로 나오거나 하고 있습니다.
제가 추측하건데, yolo.h5 만드는 과정에 문제가 있는거 같은데요, 확인 부탁 드립니다.
에러내용1: Traceback (most recent call last):
File "convert.py", line 262, in <module>
_main(parser.parse_args())
File "convert.py", line 143, in _main
buffer=weights_file.read(weights_size * 4))
TypeError: buffer is too small for requested array
에러내용2: (중간에 아래처럼 Concatenating~~~ 으로 시작하는 두 번 나오는데 정상인가요?)
arsing section upsample_0
Parsing section route_1
Concatenating route layers: [<tf.Tensor 'up_sampling2d_1/ResizeNearestNeighbor:0' shape=(?, ?, ?, 256) dtype=float32>, <tf.Tensor 'add_19/add:0' shape=(?, ?, ?, 512) dtype=float32>]
Parsing section convolutional_60
conv2d bn leaky (1, 1, 768, 256)
Parsing section convolutional_61
conv2d bn leaky (3, 3, 256, 512)
Parsing section convolutional_62
conv2d bn leaky (1, 1, 512, 256)
Parsing section convolutional_63
conv2d bn leaky (3, 3, 256, 512)
Parsing section convolutional_64
conv2d bn leaky (1, 1, 512, 256)
Parsing section convolutional_65
conv2d bn leaky (3, 3, 256, 512)
Parsing section convolutional_66
conv2d linear (1, 1, 512, 255)
Parsing section yolo_1
Parsing section route_2
Parsing section convolutional_67
conv2d bn leaky (1, 1, 256, 128)
Parsing section upsample_1
Parsing section route_3
Concatenating route layers: [<tf.Tensor 'up_sampling2d_2/ResizeNearestNeighbor:0' shape=(?, ?, ?, 128) dtype=float32>, <tf.Tensor 'add_11/add:0' shape=(?, ?, ?, 256) dtype=float32>]
Parsing section convolutional_68
conv2d bn leaky (1, 1, 384, 128)
2) yolov3.cfg 파일의 filter 와 class 는 수정 하지 않아도 되나요?
라쿤은 class 1, filter 18인거 같아서요.
* 개인 gpu 사용, tf 1.15 keras 2.3 사용 (keras 는 backend폴더에서 __init__.py 조치 하였습니다.)
답변 3
0
0
답변 감사합니다.
말씀해 주신대로 keras-yolo3 와 yolov3.weights 를 모두 삭제 한 다음 다시 다운로드 받아서 yolov3.cfg 건드리지 않고 진행했습니다. convert.py도 진행했구요. 다행히 정상 동작합니다.
그리고,,, val_loss:nan 의경우, val_loss:nan 이 뜨면 바로 멈춤 하여 학습과 검출이 완료되는지는 확인 하지 않았습니다.
계속 오류가 발생되어서, yolov3.cfg 의 filter와 class 를 수정했었습니다. ㅜㅜ 불필요한 과정이었네요.
더 공부 하겠습니다!
0
안녕하십니까,
convert.py는 Darknet YOLO 사이트의 COCO로 Pretrained된 Yolo weight를 keras에서 인식할 수 있는 weight파일인 h5 파일 형태로 변형하는 것입니다.
yolov3.cfg는 손대실 필요 없습니다. 라쿤하고는 상관 없습니다.
일단 제 환경에서는 정상 동작합니다.
먼저 제가 드리는 질문입니다.
1. 학습 시 val_loss: nan 이 나온다는 것이 Raccoon학습 시 발생한다는 건가요? 정상적으로 학습과 Detection은 되는지요?
2. 구글 검색을 해보니 질문하신 convert.py 시 발생하는 오류가 yolov3.cfg와 yolov3.weights 안맞아서 발생할 가능성도 있을 거 같습니다. 혹 yolov3.cfg을 한번 열고 수정 작업을 한 적이 있으신지요?
일단 yolov3.cfg를 https://github.com/qqwweee/keras-yolo3.git 로 들어가셔서 다시 다운로드를 받아 주십시요. 그리고 다시한번 convert.py를 수행 부탁드립니다.