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

Hwaseong Nam님의 프로필 이미지

작성한 질문수

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

<삭제 예정> Tensorflow로 Faster RCNN Object Detection 실습

get_tensor_by_name 관련 질문

20.08.17 16:43 작성

·

612

0

sess.graph.get_tensor_by_name('num_detections:0')에서 'num_detections:0'와 같은 name은 미리 확인한 후 필요에 따라 관련 value를 얻을 때 name을 사용하는 것 같은데 제가 텐서플로우 자체를 잘 모르다보니 어떻게 하는지를 모르겠네요.

name 정보들을 확인할 수 있는 함수나 방법들이 있으면 설명 부탁드립니다.

답변 5

0

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

2020. 12. 30. 21:43

sess.graph.get_operations()이 반환하는것은 계산그래프의 operation이 노드명 형태로 반환되는 것 + 해당 operation 수행 결과 tensor입니다. 즉 operation name: 0 과 같이 :0으로 표현되는 것이 해당 operation 수행 결과 tensor객체입니다.

감사합니다.

0

ui88g216님의 프로필 이미지

2020. 12. 30. 15:53

강사님 이 질문 답변을 보고 저도 어느정도 궁금증을 해결했습니다 감사합니다

그런데 노드명:operation을 넣어주신다고 하셨는데 operation에 0을 넣어주는건 어떤 의미인가요? 

0

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

2020. 08. 17. 22:14

제가 그 정도로 머리가 좋진 않습니다 ^^

Pretrained 모델로 tensorflow inference 하는 코드를 opencv tensorflow github에서 가져와 변경한 것입니다

0

Hwaseong Nam님의 프로필 이미지
Hwaseong Nam
질문자

2020. 08. 17. 21:26

답변 감사합니다.

그렇다면, 강사님이 강의 중에 사용하신 get_tensor_by_name의 인자 

-> node명:operation ('num_detection:0', 'detection_scores:0' , 'detection_boxes:0', 'detection_classses:0') 들도 get_operations()로 모든 노드를 확인한 후 필요한 위 정보들만 선택하신 건가요? 

0

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

2020. 08. 17. 20:47

안녕하십니까,

tensorflow가 graph 형태로 Object Detection Deep learning 모델 layer를 node와 operation으로  만드는데 이게 꽤 깁니다.

원하시는게 모든 node, operation을 출력하기를 원하시는 거라면 아래와 같이 코드에 sess.graph.get_operations()으로 반환되는 값을 iteration으로 출력하시면 됩니다. get_tensor_by_name()에 인자로 들어가는 것은 node명:operation입니다.

sess.graph.as_default()
    tf.import_graph_def(graph_def, name='')
    for n in sess.graph.get_operations():
        print("###:", n.name)

원하시는 답변이 아니면 다시 업데이트 부탁드립니다.

감사합니다.