CS20SI: Tensorflow for Deep Learning Research url: https://web.stanford.edu/class/cs20si/syllabus.html
CS 20SI: Tensorflow for Deep Learning Research 강의를 공부하면서 정리한 내용입니다.
- notes_01.pdf
- slides_01.pdf
- notes_02.pdf
- slides_02.pdf
- ex02_operations.py
- tensorflow 객체 생성, 기본 method 사용, graph 저장 등
- notes_03.pdf
- slides_03.pdf
- ex03_1_regression.py
- 기본 회귀 모형 적합. 1차 함수 fitting, 2차 함수 fitting, plotting, optimizer 종류
- ex03_2_logisticRegression.py
- 기본 분류 모형 적합. softmax_cross_entropy_with_logits 이용한 학습
- notes_04.pdf
- slides_04.pdf
- ex04_1_structModel.py
- word2vec(skip-gram) 모형 구축 class 정의, 학습 function 정의
- ex04_2_trainModel.py
- 모형 학습 및 파라미터 저장(graphs/notes04/skip_gram_checkpoints에 저장)
- ex04_3_visualization.py
- Tensorboard에 임베딩 결과물 시각화(graphs/notes04/skip_gram_visualization 에 저장)
- notes_05.pdf
- slides_05.pdf
- ex05_1_saveAndRestore.py
- 학습한 모형의 parameter를 저장하는 방법과 읽어오는 방법
- ex05_2_summary.py
- tensorboard에 학습 결과를 시각화 하기 위한 summary 사용법
- ex05_3_randomization.py
- variable 정의할 때 많이 사용되는 random에 대한 공부
- ex05_6_csvReader.py
- csv 파일을 feed_dict 형태가 아닌 tensor에서 queue로 읽는 방법
- slides_06
- notes_07.pdf
- slides_07.pdf
- ex07_convNet.py
- conv2d에 대한 설명
- convNet 구조 생성 및 학습, summary, parameter 저장까지 모두 포함돼 있는 코드
- input, output의 size를 명시해두어 이해하기에 편리
- tf.variable_scope를 이용해 tensorboard에서 graph를 가독성 좋게 보도록 구성
- 강의에서 제공하는 코드에서 많은 부분 추가됨
- notes_09.pdf
- slides_09.pdf
- ex09_Reader.py
- ex05_4_csvReader.py 파일과 동일한 파일
- 이 코드를 기준으로 csv에 대한 Reader를 실습
- slide에는 Reader내용에 추가로 style transfer의 loss, optimization와 관련한 내용이 있음
- slides_11.pdf
- cs20si 11장에서는 RNN의 cell과 language modeling을 설명
- RNN01_MNIST_GRUCell.py
- 강의에서 제공하는 코드보다는 golbin 님의 코드가 단계적으로 잘 설명돼있으므로 참고해서 코딩
- MNIST에 대해 GRU cell을 이용해 모델링 하는 방법 작성
- golbin 님의 코드에 아래 내용을 추가
- vanilla RNN, LSTM, GRU cell 모두를 적용 가능하게 접근
- RNN cell에 대해 dropout 적용(tf.contrib.rnn.DropoutWrapper 이용)
- Fully connected 파트는 tf.contrib.layers를 이용하였으며, batch normalization 적용
- RNN02_word_Autocomplete_dynamicLSTM.py
- 영어 단어에서 앞의 character들을 이용해 마지막 character를 예측하는 모형을 코딩
- golbin 님과 Danijar 님의 코드를 참고하여 아래 내용을 추가
- vanilla RNN, LSTM, GRU cell 모두를 적용 가능하게 접근
- LSTM cell을 이용하고, RNN을 1층만 쌓고 Dropout 적용
- dynamic_rnn에서 sequence_length를 사용하기 위해 예제 단어 추가
- dynamic_rnn은 길이가 다른 input을 dynamic하게 처리해주는데, 이해하기 쉽도록 정리
- RNN03_EncoderDecoderTranslator.py
- 여러 길이를 가진 단어들에 대해 영어 단어를 한국어 단어로 번역하는 코드
- tensorflow에서 제공하는 seq2seq를 사용하지 않고, 2개의 RNN을 연결하는 형태로 접근
- golbin 님의 코드를 참고하여 아래 내용을 추가
- GRU cell 을 이용하여 Encoder와 Decoder를 생성
- RNN을 1층만 쌓고 Dropout 적용 (이는 유동적으로 변경 가능)
- dynamic_rnn에서 sequence_length를 사용하기 위해 예제 단어 추가
- dynamic_rnn은 길이가 다른 input을 dynamic하게 처리해주는데, 이해하기 쉽도록 정리