inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

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

GraphDef 가 궁금합니다.

901

하키빌리지

작성한 질문수 10

0

안녕하세요 강사님 몇가지 질문이 있습니다. 구글링에도 잘 찾을 수 없어 질문글 남깁니다.
#inference graph를 읽음. .
with tf.gfile.FastGFile(os.path.join(default_rcnn_dir, 'pretrained/faster_rcnn_resnet50_coco_2018_01_28/frozen_inference_graph.pb'), 'rb') as f:
graph_def = tf.GraphDef()
graph_def.ParseFromString(f.read())

with
tf.Session() as sess:
# Session 시작하고 inference graph 모델 로딩
sess.graph.as_default()
tf.import_graph_def(graph_def, name='')
1. 여기서 'rb'란 binary 타입으로 read? 인가요? 왜 이렇게 쓰이는지 궁금합니다.
2. tf.GraphDef() 가 무엇을 의미하는지 왜 쓰이는지 궁금합니다.
3. tf.import_graph_def(graph_def, name='') 이 함수도 어떤 역할을 수행하는지 궁금합니다.

keras 딥러닝 머신러닝 배워볼래요? python 컴퓨터-비전 tensorflow

답변 1

0

권 철민

안녕하십니까,

tensorflow의 경우 학습이 된 모델을 저장할 때 protobuf 타입(확장자 pb)으로 저장할 수 있습니다. 

이렇게 저장된 protobuf 모델은 weight값과 Graph형태의 딥러닝 모델(예를 들어 resnet50 모델, tensorflow는 operation과 tensor, layer들을 모두 계산 graph형태로 가집니다)을 같이 가지고 있습니다. 

위의 코드는 이렇게 저장된 protobuf형태의 frozen graph(더 이상 gradient 학습을 허용하지 않는 weight와 모델구조)를 다시 tensorflow를 통해 Load하고 이를 이용해서 inference를 수행하는 어느정도 정형화(?)된 코드 입니다.  즉 pb 파일로 저장된 모델을 tensorflow의 CNN구조 모델로 다시 메모리 load하기 위한 코드입니다(tensorflow는 평범한 로직도 개발자에게 늘 많은 타이핑을 요구합니다. ^^;;)

1. rb는 이 protobuf 형태로 저장된 모델을 binary 타입 read로 읽고자 함입니다.

2. 다음 새로운(비어있는) Graph를 만들고, probuf를 parsing하면서 이 Graph를 채워넣습니다.

 graph_def = tf.GraphDef()
 graph_def.ParseFromString(f.read())

3. 이후에 tf.import_graph_def(graph_def, name='') 를 이용하여 tensorflow 모델로 로딩합니다.

아래 한글 문서도 참조 하시면 좋을 것 같습니다.

https://tensorflowkorea.gitbooks.io/tensorflow-kr/content/g3doc/how_tos/tool_developers/

감사합니다.

강의 환경설정 질문

0

38

2

Custom Dataset에서의 polygon 정보 관련

0

82

3

cvat.ai 보안 수준이 궁금합니다

0

78

2

캐클 nucleus 챌린지 runpod 실습 코드 에러 질문드립니다.

0

94

3

추론 결과의 Precision(또는 mAP) 평가 방법

0

82

2

mmdetection mask rcnn inferenct 실습 시 runpod 템플릿 관해서 질문드립니다.

0

58

2

runpod에서 google drive 연결 시 오류 발생

0

106

2

로드맵 선택

0

65

1

mmcv

0

56

2

Anchor box의 Positive 처리 위치

0

60

2

해당 강의 runpod 적용 후 에러 제보드립니다

0

84

2

run pod credit 관련 제보

0

95

2

mmdetection 2.x과 3.x 호환 관련 표기

0

76

2

mm_faster_rcnn_train_kitti.ipynb 실행 오류

0

94

3

질문 드립니다.

0

75

3

mm_faster_rcnn_train_coco_bccd 실행 오류 질문드립니다.

0

76

1

강사님께 수정을 제안드리고 싶은 것이 있습니다.

0

92

1

google automl efficientdet 다운로드 및 설치 오류

0

72

1

이상 탐지에 사용할 비전 기술 조언 부탁드립니다.

0

101

2

OpenCV 관련 질문드립니다.

0

70

2

mmcv 설치관련해서 문의드려요

0

327

3

강의 구성 관련해서 질문이 있습니다

1

134

2

모델 변환 성능 질문드립니다.

0

122

1

NMS 로직 문의 드려요

0

112

2