201019 Dev 로그

1. 한 일

  • tensorflow 데이터 구조 파악
  • 파이썬 init 확인
  • 파이썬 클린코드 읽기
  • 코드숨 5주차 강의 듣기

2. 배운점

  • javascript 비동기 처리 : thread가 종료하지 않은 상태에서 다른 thread를 실행하도록 하는 처리 방식

    • 문제점 : 비동기 이후 함수를 실행하고 싶으나 비동기 언제 끝날 지 모르기 때문에 해당 작업이 어려움
    • 해결
    • callback
    • promise
    • async, await
  • 파이썬 init 에서는 return을 주지 않는 것이 좋다.
  • tensorflow 데이터 구조

    • protobuf : 데이터 구조를 담은 텍스트로 protobuf tool을 이용해서 다양한 언어 클래스로 변환이 가능하도록 하는 구조 (*.pb, *.pbtxt)
    • tensorlfow는 Graph의 protobuf인 GraphDef와 가중치 값을 저장하는 checkpoint가 존재
  • tensroflow freezing: GraphDef에 checkpoint의 값을 저장하고, Variable을 Const로 변화하고, feedforward에 필요없는 연산을 제거하는 작업
  • 파이썬 시퀀스 생성 : getitem을 이용해서 인덱싱 및 슬라이싱 가능

    • 조건: 1. 인덱싱 결과는 해당 클래스와 동일, 2. 슬라이싱시에 마지막 요소는 제거

      class Item:
      def __init__(self, *value):
      self._value = list(values)
      def __getitem__(self, item):
      return self._value.__getitem__(item)
  • 파이썬 Context manager 생성

    • Context Manager : 주요 동작의 전후 작업을 실행하도록 도와줌
    • __enter__, __exit__ 메서드를 이용해서 구현 가능
    • contextlib 라이브러리로 구현
class DBHandler:
  def __enter__(self):
    stop_database()
    return self
  
  def __exit__(self, exc_type, ex_value, ex_traceback):
    start_database()

def main():
  with DBHandler():
    backup()
@contextlib.contextmanager
def DBHandler:
  stop_database()
  yeild  
  start_database()

def main():
  with DBHandler():
    backup()
  • vscode 명령어 공부

    • 터미널과 에디터 이동 : control + `, control + 1
    • 터미널 Pane간 이동 : alt + command + left, right

3. 느낀 점 & 자기 선언

  • 어제 파이썬 클린코드 책을 읽었다. 사놓고 1장만 읽고 말았는데, 오늘 파이썬에 대해서 좀 더 깊게 알고 싶다는 생각에 다시 책을 들춰 보았다. 그러니 유용한 정보들이 많이 있었다. 이왕 사놓은 것 시간 날때마다 읽어야 겠다.
  • 회사에서 모델 서빙 때문에 tensorflow 데이터 구조에 대해서 좀 깊게 찾아보았다. 하지만 아직 checkpoint가 어떻게 이루어지는 지 등등 몇몇 부분은 이해가 부족했다. 내일 좀 더 자세히 찾아 봐야 겠다.

Written by@WHALE
Fun Coding

GitHubFacebookLinkedIn