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!