본문 바로가기

Deep Learning

tf.gfile.GFile( )은 무엇일까 TF object detection API 공부 중에 tf.gfile.GFile( ) 을 접하게 됐는데 구글링해봐도 딱히 원하는 답변이 안 나오더라. 그나마 힌트를 얻을 수 있던 곳이 여기다. 이것저것 막 해보다 보니 tf.gfile.GFile( )은 파이썬의 open( )이랑 사용법이 완전히 일치하단 걸 알게됐다. 그래서 나 혼자서 아래와 같은 결론을 내려봤다. tf.gfile.GFile( )은 tensorflow 구조에 특화된 파일 입출력 함수 간단한 예제를 봐보면 왜 이런 결론을 내리게 됐는지 이해할 수 있을 거다. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 import tensorflow as tf with open('test.txt', 'w') as f: f.write('test.. 더보기
1.3. Pretrained model의 계산 그래프 로드 다운받은 pretrained model 관련 파일들 중에서 예측에 필요한 파일은 frozen_inference_graph.pb 이다. 그니까 우리의 목표는 아래와 같은 결과 사진을 얻는 것이고, 이를 위해선 하드디스크에 저장돼 있는 frozen_inference_graph.pb 파일을 메모리에 올려 실행해줘야한다는 말이다. 그래서 이번 글에선 frozen_inference_graph.pb를 메모리에 올리는 과정까지 알아보겠다. 글 시작에 앞서 protocol buffer와 관련된 글, [인공지능 용어 정리] - Protocol Buffer 개념 ~ Protocol Buffer 실습 2을 읽고 오길 바란다. protocol buffer가 무엇이고 어떻게 사용하는 지를 알아야 이후부터 진행되는 내용을 정확히.. 더보기
1.2. Pretrained model 다운로드 및 압축 풀기 object_detection_tutorial.ipynb을 살펴보면 전체적인 흐름이 다음과 같다. 사용하고자 하는 pretrained model의 tar.gz 파일 다운로드 tar.gz 파일 압축 풀기 pretrained model의 계산 그래프 로드 모델 실행 및 결과 출력 이번 글에서는 모델을 다운받고 압축을 푸는 방법까지 알아보겠다. 1. pretrained model 다운로드 Tensorflow에서 지원하는 object detection model 종류와 다운로드 주소는 detection_model_zoo에서 확인할 수 있다. detection_model_zoo에서 바로 모델 다운받아서 알집으로 압축 풀어주면 되기는 한다. 가장 쉽고 간단한 방법이다. 근데 이를 코드로 작성해서 사용하는 방법에 대.. 더보기
Protocol Buffer 실습 2 역직렬화(Deserialization)를 통해 EXAMPLE.pb에서 데이터를 추출하는 방법에 대해 알아보자. [ read.py ]123456789import EXAMPLE_pb2 handson = EXAMPLE_pb2.HandsOn() with open('EXAMPLE.pb', 'rb') as f: serialized = f.read() handson.ParseFromString(serialized) print(handson) cs Line 1 : 마찬가지로 뼈대를 갖고 있는 EXAMPLE_pb2.py를 import 해줘야 한다. 그래야 이 뼈대에 맞춰서 deserialized data를 재분배할 수 있기 때문이다. Line 6 : 직렬화된 형태로 저장된 데이터를 읽는다. Line 7 : 읽은 데이터를.. 더보기
Protocol Buffer 실습 1 protocol buffer를 사용해 객체를 .pb 파일로 저장하는 과정까지 이번 글을 통해 알아보겠다. 구글에서 이렇게 써! 라고 지정해서 배포한 거라 앞으로의 과정에 대해 '왜 이걸 쓰는 거지?' 내지는 '왜 이렇게 하는 거지?' 와 같은 의문은 안 갖는 것이 좋다. 1. 객체의 뼈대 생성 먼저 저장하고자 하는 객체의 뼈대에 대한 정보를 갖는 EXAMPLE.proto를 protocol buffer 폴더를 새로 만들어 안에 저장해주자. [ EXAMPLE.proto ]1234567syntax = "proto3"; message HandsOn{ string name = 1; string type = 2; float value = 3;} cs HandsOn객체는 string형 2개, float형 1개의 데이.. 더보기
Protocol Buffer 개념 Tensorflow Object Detection API를 공부하다 protocol buffer라는 처음 보는 용어를 접하게 됐다. 개념 파악을 위해 이곳저곳 살펴보며 공부했던 내용을 짧막하게 정리해보고자 한다. Protocol Buffer ? CSV, XML, JSON 등과 같이 여러 직렬화 방식 중 하나로 구글에서 개발한 이진 직렬화 방식 여기서 직렬화(serialization)는 객체 저장을 위한 데이터 저장 방법이라 생각하면 된다. 저장 뿐 아니라 불러오는 관점에서도 직렬화 (및 역직렬화)는 데이터를 다루는 측면에서 간단하고 효과적이기 때문에 사용되는 것 같다. 차이점이라면, Protocol Buffer는 다른 직렬화 방식들과는 다르게 조금 복잡한 흐름을 갖는다. 다음 글에서 실습을 통해 어떤 차.. 더보기