인프런 커뮤니티 질문&답변

park30908님의 프로필 이미지
park30908

작성한 질문수

[개정판] 딥러닝 컴퓨터 비전 완벽 가이드

텐서플로우 다운그레이드 이유가 궁금합니다

작성

·

514

0


안녕하세요 강사님. 이번에 수업을 신청한 한 학생입니다.

다름아니라 이번 강의에서 tensorflow와 keras 버전을 downgrade 시키셨는데, 혹시 그이유를 알 수 있을 까요??

강의가 출시되기 전에 tensorflow2.0이 출시된것으로 알고 있는데, 왜 tensorflow1.13버전을 사용하는지 알고 싶습니다.

현재는 거의 대부분의 tensorflow유저들은 2.0버전을 사용하지 않나요?  더 빠르게 변하고 발전하는 앞으로의 관점에서 tensorflow2.0버전을 사용하여 공부하는 것이 좋지 않나..싶은 생각입니다. 

답변 1

1

권 철민님의 프로필 이미지
권 철민
지식공유자

안녕하십니까,

실습환경 설정 강의에서도 TF 2를 선택하지 않고 1.13~15 버전 선택 이유를 말씀드렸지만 다시 자세히 말씀 드리면, 대부분의 Object Detection/Segment 패키지들이 TF2에서 동작하지 않거나 TF2의 버그가 너무 많았기 때문입니다.

강의 출시 시점(2020.04월 중순)을 기준으로 TF2는 거의 Object Detection/Segmentation 패키지에서 활용되지 않았습니다.

1. OpenCV DNN은 Tensorflow 1.x 버전의 frozen graph를 이용합니다. 

2. Tensorflow frozen 모델이 다 Tensorflow 1.x 버전으로 작성되어서 pretrained 모델 호출 시 TF2로는 호출 할 수 없습니다. (2020년 하반기에 TF2 Pretrained 모델이 만들어 졌습니다)

3. SSD, Retinanet, Mask RCNN으로 잘 알려진 Keras용 패키지들은 전부다 TF1.13 ~ 15를 기반으로 하고 있으며 TF2와 호환되지 않습니다. 단 출시 시점에 YOLO의 경우 TF2 기반 Keras로 작성된 패키지가 있었으나, 당시 TF2의 버그로 치(?)를 떨던 시점이라 해당 패키지를 신뢰할 수 없어서 강의에서 소개시켜드리지 않았습니다.

4. Tensorflow Object Detection API 역시 TF2 버전을 지원하지 않았습니다(지금은 지원됩니다)

5. 무엇보다도 TF2의 버그가 너무 많았습니다. 그래서 TF1으로 작성된 많은 패키지들이 TF2로 변환을 하지 못해서 어려움들이 있었습니다. TF2.0 ~ 2.2 까지는 (솔직히) 베타 버전 이라고 생각합니다.

한가지 더 말씀드리면, 강의를 만들기 시작한 시점에(2019년 10월쯤?) TF2를 적용하기 위해서 많은 노력을 기울였으나 버그와 호환성 부족으로 다 역부족이었습니다. 덕분에 강의를 만드는데 꽤 오랜 시간이 걸렸습니다.

제 의견을 말씀드리면 본 강의는 TF1.13, 1.15를 Backend로 하고 있지만 Tensorflow 용 코드는 사용이 매우 적으며, 대부분 Keras용 코드입니다.또한 Object Detection과 Segmentation에 이해와 이에 대한 실습을 본 강의로 터득하신다면, TF2로 작성된 어떠한 패키지라도 쉽게 이해하고 사용하실수 있을 것입니다.

감사합니다.

park30908님의 프로필 이미지
park30908
질문자

답변 감사드립니다:) 한번 열심히 수강해 보겠습니다!!

park30908님의 프로필 이미지
park30908

작성한 질문수

질문하기