This document provides random thoughts on implementing machine learning papers. It discusses what types of papers to implement, including computer vision, NLP, reinforcement learning and more. It recommends specific papers and code repositories. It also discusses whether to use TensorFlow or PyTorch and mentions grants and competitions for implementing papers.
41. Recommendations
• NLP: End-to-End Memory Network
• https://github.com/carpedm20/MemN2N-tensorflow
• Vision: (Fast) Style Transfer
• https://github.com/lengstrom/fast-style-transfer
• RL: Asynchronous Methods for Deep Reinforcement Learning
• https://github.com/openai/universe-starter-agent (TBH code is dirty but there are lots of things to learn)
• https://github.com/ikostrikov/pytorch-a3c
• Etc: Neural Turing Machine
• https://github.com/loudinthecloud/pytorch-ntm
42. More (nerdy) recommendations
• from tensorflow.contrib.seq2seq import Helper:
• https://github.com/keithito/tacotron/blob/master/models/helpers.py
• tf.while_loop:
• https://github.com/melodyguan/enas/blob/master/src/ptb/ptb_enas_child.py
• import tensorflow.contrib.graph_editor as ge:
• https://github.com/openai/gradient-checkpointing/blob/master/memory_saving_gradients.py
• Google’s production level code example:
• https://github.com/tensorflow/tensor2tensor
• The Annotated Transformer
• http://nlp.seas.harvard.edu/2018/04/03/attention.html
• Relatively safe-to-read codes:
• https://github.com/tensorflow/models
56. • Dirty long code
• More stressful debugging
• Faster development (1.5.0: Jan. 18, 1.6.0-1.7.0: Mar. 18, 1.8.0: Apr. 18, possibly more reliable)
• Easier (partial) save and load models (tf.Supervisor)
• Harder dynamic computation (tf.fold)
• XLA, TensorBoard, TPU, tf.eager, Multi-node distribution, Documentation
57. … compiling parts of the computational graph with XLA (a TensorFlow Just-In-Time compiler) and
…
Espeholt, Lasse, et al. "IMPALA: Scalable Distributed Deep-RL with Importance Weighted Actor-Learner Architectures." arXiv preprint arXiv:1802.01561 (2018).
62. • Clean short code
• Less stressful debugging
• Slower development (0.2.0: Aug. 17, 0.3.0: Dec. 17)
• Dirty (partial) save and load models
• Easier dynamic computation