Toward Best Practices of TensorFlow Code Patterns
Jongwook Choi (@wookayin) and Beomjun Shin (@shastakr)
A talk in the 2nd meetup of TensorFlow Korea Group
January 14th, 2017
Many contents in this talk are outdated (and thus less recommended) as they were based on older versions of TensorFlow.
TensorFlow now has more handy APIs and is moving toward TF 2.0
that encourages many better practices.
This repository is kept only for archival purposes.
https://wookayin.github.io/TensorFlowKR-2017-talk-bestpractice/
Slides
๐ฐ๐ท ๋ฐํ์๋ฃ (In Korean)๐บ๐ธ Lecture Slide (In English):Coming Soon!
Abstract (In Korean)
์ด๋ฒ ๋ฐํ์์๋ (์ฃผ๋ก ์ฐ๊ตฌ ํ๋ก์ ํธ๋ฅผ ์ํ) TensorFlow ์ฝ๋๋ฅผ ์์ฑํ ๋์ Best Practice ๊ทธ๋ฆฌ๊ณ Code Patterns ์ ๋ํด ์ด์ผ๊ธฐํฉ๋๋ค. ์ ์ ์ ์ผ๋ก ๋ค์๊ณผ ๊ฐ์ ๋ด์ฉ๋ค์ ๋ค๋ฃฐ ์์ ์ ๋๋ค:
- ๊ตฌํ ๋ฐ ์ค๊ณ ์์ ๊ฐ์ข ์๊ตฌ์ฌํญ/๊ณ ๋ ค์ฌํญ
- TensorFlow์ ๋ชจ๋ธ ๋ชจ๋ํ ๋ฐ ์ถ์ํ ํจํด (+ํก๋จ๊ด์ฌ์ ์ฒ๋ฆฌ ๋ฐฉ๋ฒ)
- High-level API ์ ๊ทน์ ์ผ๋ก ์ฌ์ฉํ๊ธฐ (tf.contrib.layers, tf.slim, tf.learn ๋ฑ)
- (i) ๋ชจ๋ธ ์ฝ๋ ์์ฑ (ii) ๋ฐ์ดํฐ์ ๋ฐ ํธ๋ ์ด๋ ์์ฉ๊ตฌ (iii) ์คํ ๋ฐ ์ค์ ๊ด๋ฆฌ (iv) ๊ธฐํ ์์ํ ํ ๋ฑ์ ๊ดํ ํจํด๊ณผ ์ฝ๋ ์์
Abstract
In this talk, we aim to deliver several best practices, guidelines, and code patterns for writing TensorFlow codes, mainly when conducting research projects. A tentative and incomplete list of topics:
- Common requirements and frequent design concerns in implementation
- Patterns of model modularization and abstraction in TensorFlow (+ cross-cutting concerns)
- Using modern and high-level APIs (tf.contrib.layers, tf.slim, tf.learn, etc.)
- Patterns and code examples on: (i) styles of model writing, (ii) dataset loader and training boilerplates, (iii) management of experiments and configuration, and (iv) other general and miscellaneous tips.
Note
The talk will given in Korean, but I will self-translate the material into English shortly after the talk.
The topics are mainly based on the authors' personal experience, so may contain some opinionated suggestions. Of course, there cannot be the only answer: Please contact me if you have a suggestion, a question, or an idea that can improve the contents of this talk!