TF Pattern Design 2018, Syllabus
스터디 목적
- 빠르게 아이디어를 검증할 수 있는 코드 패턴 찾기
- 디버깅을 간편하게 해주는 코드 패턴 찾기
- 코드 재사용 성능 높여주는 코드 패턴 찾기
- 훈련시간을 최소화 시킬 수 있는 파이프라인 찾기
- 간결한 코드를 만들기 위한 패턴 찾기
MoT 스터디 철학
- 발표하는 순간은 내가 최고 전문가가 된다.
- 쉽게 받아들이지 않고 깊게 생각하고 깊은 통찰을 가지는 지식을 공유한다.
- 내 전문성으로 팀원에게 기여하고 팀원의 전문성으로 내 스팩트럼을 넓힌다.
- 다른 곳에서 얻을 수 없는 인사이트를 주는 질문을 하려고 한다.
- 모든 스터디 결과물은 재생산이 가능해야 하며 기록으로 남아야한다. 고로 커뮤니티에 기여한다.
일정
- 2018 6월, 총 4회
방식
- 팀원코드리뷰 : 이전 과제의 코드를 돌아가면서 리뷰한다.
- 본 발표 : 발표자가 책 해당 챕터 내용을 요약하고 api gslide 준비 하기 (api 문서 자료 찾아서)
- 발표자가 발표 후 github.io + markdown으로 블로깅을 한다.
- 간단하게 abstract정도로만하고 glide or markdown 슬라이드를 링킹
- 참가자는 자신의 코드를 mot repo에 업로드 한다.
- 사전에 github사용법을 배워야 한다 (도움 문서 win10)
- 스터디 이후 할일 ```python 발표자:
- 자료 업데이트하고
- 블로깅 (https://motlabs.github.io/ )
다른 팀원
- 배운것을 토대로 본인의 코드 업데이트
- $ git fork https://github.com/jwkanggist/tensorflowlite
다음 발표자
- 차주 발표 준비
#### 블로깅 형식
- [post template](https://motlabs.github.io/2018-06-08/postformat/)
- About
- 슬라이드+ 깃헙 레포 링크
- Abstract (Kor)
- Abstract (Eng)
-
Discussions ```
- markdown 문법 참고 자료
스케쥴
- 레퍼런스:
06/03
- 목표: 텐서플로우 코드가 갖춰야 할 기본 구조 이해하기
- L.T. : Chapter 1~ 3 공부:
- 환경 설치, github, 연산 그래프, 그래프, 세션, 페치, 텐서의 흐름 ,변수, 플레이스홀더, 간단한 최적화
06/10
- 목표:
- Training/ evaluation에 필요한 dataset 준비하기
- Model training loop 및 pipeline을 구현한다
- 관련 tf API:
- tf.data
- tf.gflie
- tf.python_io.TFrecord
- 코딩 과제 1 :
입력 처리에 코드를 익힌다.앞으로 개인 프로젝트에 사용할 data manager를 구현하고 과제1에 붙여본다.
- data_loader.py
- input_ops.py
- preprocess_data.py
- L.T. : Chapter 4, 8 공부 :
- Chapter 4 CNN with MNIST.
- Chapter 8 큐, 스레드, 데이터읽기1) 입력 파이프라인 : 전처리, 2) TFRecord, 3) Queue, 멀티스레딩 입력 파이프라인
06/17
- 목표: Model training loop 및 pipeline을 구현한다 텐서플로 추상화/간소화와 라이브러리를 사용해본다.
- Optimizer
- stepwise validation
- full validation
- pre-trained model loading
- check-point saving
- Logging
- tensorboard summary
- 관련 tf API
- tf.train
- tf.test
- tf.estimator
- tf.saved_model
- tf.layers
- (tf.get_variable)
- (tf.variable_scope)
- 코딩 과제 2 :
Lenet5 with MNIST 구현과제2의 코드를 새로 익힌 API를 통해서 업그레이드 해본다.
- train.py
- eval.py
- L.T : Chapter 7, 10 (이 주는 책보다 API 문서등으로 주로 공부)
- Chapter 7 – 텐서플로 추상화/간소화 1) tf.contrib.learn : tf.estimator, tf.layers 2) TFLearn, 3) Keras : 순차형 모델 / 함수형 모델 , 4) TF-Slim : pre-trained model loading Chapter 10 – /model exporting 1) 로딩된 weight 2) saver 클래스 3) metagraphdef
06/24
-
목표: 텐서 보드 시각화와 시계열 데이터를 다뤄보자
-
관련 tf API:
- tf.nn
- tf.tensorboard summary
- 코딩 과제 3 :
RNN / LSTM 구현, tfboard를 사용해 본다. 라이브러리 등을 최대한 활용하여 코드를 간소화한다.
- L.T : Chapter 5, 6, 공부
-
Chapter 5,6 - RNN/ LSTM 1) tf.summary Tensorboard 시각화, 2) embedding, 3) learning hyper parameter 4) 3d tensorboard 시각화 5) contri.rnn.MultiRNNCell 6) tf.nn api :
tf.nn.embedding_lookup, tf.nn.nce_loss, tf.nn.bidirectional_dynamic_rnn, tf.contrib.rnn.basicrnncle , tf.nn.dynamic\_rnn()
-
06/30:
- 목표: tf model configuration 관리하기
- nice - style and readability
- componentwise coding
- logging
- Meta parameter
- Multi GPU관련 tf API:
- get_variable
- variable_scope
- 코딩과제 4 : model부분을 모듈화 해보고 readability를 높여 보자, model configuration을 해보자
- model.py- models
- xxxnet.pymeta-parameter
- model.py
- models/xxxnet.py
- L.T : Chapter A.1, Chapter 9
- Chapter A.1
1) 모듈형설계,
2) 변수공유 : get_variable()
3) 클래스 캡슐화 : @property, model.fit(), functools,
4) 직접 제작한 손실함수, 5) 정규화 : l1, l2, lambda, 6) 자신만의 연산 만들기 - Chpater 9
- 분산 텐서플로 (Multi GPU)
- Chapter A.1
1) 모듈형설계,
2) 변수공유 : get_variable()
3) 클래스 캡슐화 : @property, model.fit(), functools,
자료
- 주교재 : Learning Tensorflow
그 외 자료
- 정석으로 배우는 딥러닝 : 이론 위주
- Stanford Lecture**
Github repos
- 골빈 해커 gitrepo
- ymericdamien/TensorFlow-Examples
- Jaewook Kang, EveryBodyTensorflow
동영상 강좌
- 모두를 위한 딥러닝 Sung Kim
- 텐서 플로 강의 Chanwoo Jacob Lee